Bir 2D dizisinden dört hücrenin ortalamasını alan bir kod yazdım. Koşullar, sütunların ve satırların bir son değer olması gerektiğidir, eğer değilse son sütunu/satırı görmezden geliyoruz.Bir 2D dizi verildiğinde - Orijinal dizideki değerleri kullanarak yeni bir dizi oluşturmak istiyorum
Bunun bir başlık dosyasının parçası olduğunu belirtmeyi unuttum - 2D dizisi ana() içeren başka bir dosyada bir dizi [x] [y] olarak tanımlanır. pastebin.com/LUXW5X6b
Bunu göz önünde bulundurarak, en iyi yaklaşımın yığınlara erişmek ve değişiklik yapmak için işaretçi ve malloc kullanmak olduğuna inanıyorum. -> Bunu başarmak için nasıl giderim?
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 [] is 1d .. – user3528438