C-函數傳數組參數給另一個函數,使用malloc
阿新 • • 發佈:2018-11-12
函數 for 訪問 spl ++ 共享訪問 分配內存 內存 另一個
//
// 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