我是objective-c的新手,并且正在做一些暂时有效的事情,但我担心有一天会坏掉。
在我的一个对象中,我将一个整数矩阵声明为实例变量。由于我还不知道矩阵的大小,所以我这样声明:
int **_matrix;
稍后在代码中,当我知道矩阵的行数和列数时,我将其初始化如下:
_matrix = malloc(sizeof(*_matrix) * columns * lines);
for (i = 0; i < columns; i++) {
_matrix[i] = malloc(sizeof(int) * lines);
for(j = 0; j < lines; j++)
_matrix[i][j] = -1;
}
假设我的分配是正确的(如果它实际上是错误的,请随时告诉我),我可以自信地使用二维数组语法访问元素吗?
我之所以问,是因为根据我的阅读,当您创建一个实际的二维数组时,内存会连续保留,但使用双指针可能并非如此。所以我害怕打电话
_matrix[i][j]
实际上会指向内存中的一个随机位置(而不是我分配的位置)。
谢谢您的回答!