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

标签 c arrays

我的问题是,当我在函数中创建本地数组并返回它时,数组中的所有值都会分配给数组的第一个值。例如,返回一个大小为 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/

相关文章:

arrays - 合并 n 个数组 A1..An,每个数组 Ai 是 {1..i} 的随机子集

python - 使用 python 在值列表上的余弦距离

ios - 从 JSON 响应对象中获取值

c - 这个C函数是如何工作的

c - 如何确保 C 内核模块只有一个实例正在运行(单例)?

python - 为C编写Tensorflow模型

c++ - 在头文件不存在的计算机上运行已编译的 C 程序

java - 如何在不使用排序算法的情况下在 java 中对数组进行排序,同时忽略其他值?

c - 需要指针帮助

c - "object"和指向某种结构的指针之间有区别吗?