gpt4 book ai didi

C - 返回的数组仅用第一个值填充数组

转载 作者:行者123 更新时间:2023-11-30 16:50:11 25 4
gpt4 key购买 nike

我的问题是,当我在函数中创建本地数组并返回它时,数组中的所有值都会分配给数组的第一个值。例如,返回一个大小为 4、值为 3、5、11、13 的数组。该数组现在只有值 3, 3, 3, 3。我对编码相当陌生,因此我们将不胜感激。

uint8_t* half( const uint8_t array[],
unsigned int cols,
unsigned int rows )
{

int size = (cols / 2) * (rows / 2);

uint8_t *newarray = malloc( size * sizeof(int) );

float average;

for (int i = 0; i < (rows / 2); i++) {

for (int k = 0; k < (cols / 2); k++) {

average = (array[ (2*k) + (2*i*cols) ] + array[ ((2*k) + 1) + (2*i*cols) ] + array[ ((2*k) + 1) + ((2*i*cols) + cols) ] + array[ (2*k) + ((2*i*cols) + cols) ]) / 4.0;

newarray[k + (i * (cols / 2))] = (int)( round(average) );

}
}

return newarray;

}


int main () {

uint8_t *halfarray;

halfarray = half(testarray, test_width, test_height);

for (int i = 0; i < 4; i++) {

printf("values in array %d\n", *halfarray);

}

return 0;
}

最佳答案

尝试更改此行:

printf("values in array %d\n", *halfarray);

对此:

printf("values in array %d\n", *halfarray);
halfarray++

关于C - 返回的数组仅用第一个值填充数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42288725/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com