【发布时间】:2012-12-23 15:08:47
【问题描述】:
可能重复:
Passing a pointer representing a 2D array to a function in C++
我正在尝试通过指针将我的二维数组传递给一个函数并想要修改这些值。
#include <stdio.h>
void func(int **ptr);
int main() {
int array[2][2] = {
{2, 5}, {3, 6}
};
func(array);
printf("%d", array[0][0]);
getch();
}
void func(int **ptr) {
int i, j;
for (i = 0; i < 2; i++) {
for (j = 0; j < 2; j++) {
ptr[i][j] = 8;
}
}
}
但是程序会因此而崩溃。我做错了什么?
【问题讨论】:
-
使用正确的类型,
void func(int (*ptr)[2]),或者传递一个指针数组。 -
数组不是指针。指针不是数组。你做错了什么是在你不再怀疑之前没有对自己重复这件事。