问问题
2159 次
3 回答
1
clang的错误信息更好:
error: array type 'float [width][height]' is not assignable
数组不可赋值。你已经声明
float leNoise[octave][width][height];
然后尝试分配二维组件数组:
for (i = 0; i < octave; i++)
{
/* Big problem here: moving data from a two-dimensional array
* to a three-dimensional array */
leNoise[i] = smoothNoise[i];
}
由于数组不可分配,因此您必须在memcpy
此处 [直接或使用 ] 一个接一个地复制值。
但,
float smoothNoise[width][height];
smoothNoise
是一个width×height
数组,并且smoothNoise[i]
是一个float[height]
(然后转换为指向其初始元素的指针),所以你有一个维度不匹配,我不知道你打算在这里做什么,所以我不能建议修复。
于 2013-05-08T21:05:28.093 回答
1
据我所知,这项任务是罪魁祸首。
for (i = 0; i < octave; i++)
{
/* Big problem here: moving data from a two-dimensional array to a three-dimensional array */
leNoise[i] = smoothNoise[i];
}
因为C 没有任何称为数组到数组复制的东西。您应该通过仔细循环数组来手动将单个项目从源复制到目标。
Ex, leNoise[x][y][z] = smoothNoise[i][j]
于 2013-05-08T21:05:20.677 回答
0
#include<stdlib.h>
你必须包含它,它会删除其他警告关于数组我不知道这种复制是否可以从 3D 到 2D 数组所以不能帮助。
于 2013-05-08T21:21:05.857 回答