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的主要内容,如果未能解决你的问题,请参考以下文章

c语言malloc函数

将数组中的所有值作为参数传递给函数

使用 match.call 将所有参数传递给其他函数

函数定义传入二个参数,实际调用,也可以传一个参数.

c语言动态数组如何扩充空间

C将int数组指针作为参数传递给函数