関数にポインターを渡し、このポインターに動的メモリを割り当てる必要がある初心者の質問があります。メイン関数でポインターを作成し、メモリを割り当てるはずの特定の関数に渡します。しかし、私はこのエラーを受け取ります:「この関数では、hist_array が初期化されていない可能性があります」
これはプログラムからの関連行です: メインから:
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 にしたいのですが、最短の方法でそれを行うにはどうすればよいですか?