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在堆中分配內存,這樣,纔可以在多函數中共享訪問。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章