我在 xcode 中使用原始数组类型。例子:
int matrix [10][10];
我也在使用一个简单的循环来初始化数组
for(int x=0;x<=10;x++)
for(int y=0;y<=1;0y++)
matrix[x][y] = 0;
我在整个代码中以这种方式初始化 sevreal 矩阵。我有时注意到在执行初始化后,以前初始化或更新的数组现在包含垃圾。有没有更简单的方法来初始化这种类型的数组。和/或为什么这似乎会破坏其他数组。
我在 xcode 中使用原始数组类型。例子:
int matrix [10][10];
我也在使用一个简单的循环来初始化数组
for(int x=0;x<=10;x++)
for(int y=0;y<=1;0y++)
matrix[x][y] = 0;
我在整个代码中以这种方式初始化 sevreal 矩阵。我有时注意到在执行初始化后,以前初始化或更新的数组现在包含垃圾。有没有更简单的方法来初始化这种类型的数组。和/或为什么这似乎会破坏其他数组。
您的数组在两个维度上都有 10 个位置,但您的循环最多可达 11 个。
尝试
for(int x = 0; x < 10; x++)
for(int y = 0; y < 10; y++)
matrix[x][y] = 0;
注意使用小于比较器而不是小于或等于。
我想您没有为不同的矩阵声明不同的变量,而是错误地覆盖了它们。
试试看...
matrix=[[NSArray alloc]init];
int myArray[10][10] = {};
这将创建数组并将所有出现的事件初始化为 0;
您所看到的最可能的损坏原因(假设您没有犯@Renan 指出的错误)是您期望堆栈指针存在于其范围之外。例如,您不能对return matrix
调用者,因为创建它的堆栈帧将消失。
此外,由于您在堆栈上进行分配,因此您需要注意矩阵大小。如果它变得太大,那么你会得到堆栈损坏。如果您没有深度递归,100 个整数通常很好,但请记住堆栈限制:
这是整个堆栈(所有帧,而不仅仅是当前帧)。