// 二维指针
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" );
}
|