나는 현재 포인터를 배우고있다.포인터를 가리키는 포인터?
#include <cstdio>
#include <cstring>
#include <cstdlib>
using namespace std;
int f1(int **w){
for (int i=0;i<2;i++){
for (int j=0;j<10;j++){
w[i][j]=10;
printf("%d ",w[i][j]);
}
printf("\n");
}
printf("----\n");
}
int main() {
int **w = (int **) malloc(sizeof(int*)*2);
for (int i=0;i<2;i++)
w[i] = (int*)malloc(sizeof(int)*10);
for (int i=0;i<2;i++){
for (int j=0;j<10;j++){
w[i][j]=i*10 + j;
printf("%d ",w[i][j]);
}
printf("\n");
}
printf("---\n");
f1(w);
for (int i=0;i<2;i++){
for (int j=0;j<10;j++){
w[i][j]=i*10 + j;
printf("%d ",w[i][j]);
}
printf("\n");
}
return 0;
}
그래서,이 코드를
이 여기에 출력됩니다 : 나는 궁금하네요
0 1 2 3 4 5 6 7 8 9 10
11 12 13 14 15 16 17 18 19
---
10 10 10 10 10 10 10 10 10 10
10 10 10 10 10 10 10 10 10 10
----
0 1 2 3 4 5 6 7 8 9 10
11 12 13 14 15 16 17 18 19
, 왜 배열 값 (마지막 두 행을 볼 수는) 10 다릅니다은? .
올바른 포인터를 보내지는 않겠지 만,이 경우 10 ... 10이라는 배열이 어디에 저장되어 있는지 궁금합니다.
감사
당신은 명시 적으로'[내가] [j]가 = 내가 10 + J를 * 승으로 그 가치를 재 할당,'당신이 전에 인쇄 그들 ... 뭐가 불분명하니? –