一个程序和一个问题


程序:
#include<stdio.h>
#include<conio.h>
#include<string.h>
main(){
int (*p)[3]={0};
int i,j;
for(i=0;i<3;i++)
for(j=0;j<3;j++)
*(*(p+i)+j)=(i+1)*(j+1);
for(i=0;i<3;i++){
for(j=0;j<3;j++)
printf("%2d",*(*(p+i)+j));
printf("\n");
}

}

程序输出:
1 2 3
2 4 6
3 6 9
Null pointer assignment
请问为什么会出现最后一行?

问题:
请问this指针的使用方法
[500 byte] By [leonhome-腐烂生存] at [2007-12-16]
# 1
p[i]是指向int的指针,但没分配内存
liubear at 2007-10-26 > top of Msdn China Tech,C/C++,C语言...
# 2
#include<stdio.h>
#include<conio.h>
#include<string.h>
main(){
int (*p)[3]={0};
int i,j;
int a[3],b[3],c[3];

p[0] = a;
p[1] = b;
p[2] = c;
for(i=0;i<3;i++)
for(j=0;j<3;j++)
*(*(p+i)+j)=(i+1)*(j+1);
for(i=0;i<3;i++){
for(j=0;j<3;j++)
printf("%2d",*(*(p+i)+j));
printf("\n");
}
}

p是个指针数组, 要分配空间。
blue_coco-椰子 at 2007-10-26 > top of Msdn China Tech,C/C++,C语言...
# 3
还有只申请了p[1][3]的二维数组,但操作了p[3][3]的数组
liubear at 2007-10-26 > top of Msdn China Tech,C/C++,C语言...
# 4
1。你的int (*p)[3]={0};是个指针数组,你没有给他分配内存单元,不错才怪呢?
你在你的机器运行出这个结果是你运气好,我的机器中根本无法运行,将
int (*p)[3]={0};改成int p[3][3]={0};
2。用在c++中的类的成员函数中,表示自己