这个程序为什么不报“段错误”
程序代码:
#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 编辑 ]