这个程序为什么不报“段错误”
程序代码:#include<stdio.h>
int main(){
int i;
i=10;
typedef char (*PP)[8];
PP p;
p=(PP)malloc(i*8);
for(i=0;i<10;i++){
strcpy(p[i],"123456789");
//p[i]="1234567";
printf("%s\n",p[i]);
}
}
问题1:p应该就只有80个字节的空间,为什么不报段错误?问题2:注释处的赋值方法替代strcpy所在行为什么会报错?
本人理解不清 还请多多指教!
[ 本帖最后由 khaz 于 2011-4-29 16:03 编辑 ]









