C-函数传数组参数给另一个函数,使用malloc
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C-函数传数组参数给另一个函数,使用malloc相关的知识,希望对你有一定的参考价值。
//
// main.c
//
//
// Copyright ? 2018 [email protected]
//
#include <stdio.h>
#include<stdio.h>
void fun(int *array){
int sum=0;
for(int i=0;i<5;i++){
printf("%d\n",array[i]);
sum=sum+array[i];
}
printf("%d",sum);
}
int main(){
int *buffer=(int*)malloc(sizeof(int)*5);
if(buffer==NULL) exit(1);
int array[5]={2,4,5,5,3};
memcpy(buffer,array,sizeof(int)*5);
fun(buffer);
}
在C函数中声明的非全局变量都分配在函数的栈中,函数执行完毕后,内存将释放。因此,当一个函数传参数给另外一个函数时,如果传递的是一个内存块(比如数组等)的引用和指针,要使用malloc在堆中分配内存,这样,才可以在多函数中共享访问。
以上是关于C-函数传数组参数给另一个函数,使用malloc的主要内容,如果未能解决你的问题,请参考以下文章