|
// 二维指针
printf("Addresses of two dimensional pointer\n");
int** ptr = (int**) malloc(sizeof(int*) * 4);
printf("%d:\t%d\n", &ptr, ptr);
for(i = 0; i < 4; i++) {
*(ptr + i) = (int*) malloc(sizeof(int) * 2);
}
for(i = 0; i < 4; i++) {
for(j = 0; j < 2; j++) {
*(*(ptr+i) + j) = i * 2 + j;
}
}
for(i = 0; i < 4; i++) {
printf("%d:\t%d\n", ptr + i, *(ptr + i));
}
printf("==\n");
for(i = 0; i < 4; i++) {
for(j = 0; j < 2; j++) {
printf("%d:\t%d\t%d\n",*(ptr + i) + j, *(*(ptr + i) + j), ptr[i][j]);
}
printf("==\n");
}
|