我有一個初學者問題 我需要將一個指針傳遞給一個函數,然後爲這個指針分配dinamic內存。 我在主函數中創建了指針,然後將它傳遞給應該分配內存的特定函數。但我得到這個錯誤: 「hist_array可以使用此功能初始化」malloc內存分配
這是從程序rellavent線: 從主:
int* hist_array;
fillHistogram(first_image,hist_array,max_value+1);
功能:
void fillHistogram(int image[M][N], int* hist, int histLen){
hist=(int*)malloc(sizeof(histLen)*(histLen));
我不能改變函數的簽名,它是作爲結構化文件給予我們的。所以我想知道我做錯了什麼。
和另一個問題。我使用malloc創建的新數組,我希望它在開始時的所有值都是0.我如何以最短的方式執行該操作?
爲什麼要分配空間來存儲指針?無論如何你必須將結果存儲在指針中,爲什麼不把函數指針存儲在那裏呢? –
關於另一個問題,使用'calloc','void * calloc(size_t nmemb,size_t size);',它爲每個大小爲size的'nmemb'對象分配空間,併爲分配的內存填零。 –
calloc在這項任務中是不允許的 – littlerunaway