2次元配列から4つのセルの平均をとるコードを書いた。条件は、最後の列/行を無視しない場合は、列と行を偶数値にする必要があるということです。2D配列が与えられた - 元の配列の値を使用して新しい配列を作成したい
これはヘッダーファイルの一部であることを忘れていました.2D配列はmain()を含む別のファイルの配列[x] [y]として定義されています。 pastebin.com/LUXW5X6b
これを考えると、ヒープにアクセスして変更を加えるためにポインタとmallocを使用するのが最善の方法だと思います。これを達成するにはどうすればいいですか?
uint8_t *half(const uint8_t array[],
unsigned int cols,
unsigned int rows) {
// your code here
int i, j;
uint8_t new_rows = rows/2;
uint8_t new_cols = cols/2;
uint8_t new_array[new_rows][new_cols];
if (new_rows % 2 != 0) {
new_rows = new_rows - 1;
}
if (new_cols % 2 != 0) {
new_cols = new_cols - 1;
}
for (i = 0; i < new_rows; i++) {
for (j = 0; j < new_cols; j++) {
new_array[i][j] = average(array[2*i][2*j],
array[2*i+1][2*j],
array[2*i+1][2*j+1],
array[2*i][2*j+1]);
}
}
return NULL;
}
array []は1dです。 – user3528438