thể trùng lặp:
Passing a pointer representing a 2D array to a function in C++Làm thế nào để vượt qua một mảng 2ngày qua con trỏ trong c
Tôi cố gắng để vượt qua mảng 2 chiều tôi đến một chức năng thông qua con trỏ và muốn thay đổi giá trị.
#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;
}
}
}
Nhưng chương trình bị lỗi với điều này. Tôi đã làm gì sai?
Sử dụng đúng chủng loại, 'trống func (int (* ptr) [2]) ', hoặc truyền một mảng con trỏ. –
[Làm cách nào để sử dụng mảng trong C++?] (Http://stackoverflow.com/q/4810664/1202636) – effeffe
Mảng không phải là con trỏ. Con trỏ không phải là mảng. Những gì bạn đã làm sai là không lặp đi lặp lại điều này cho chính mình cho đến khi bạn ngừng nghi ngờ nó. –