更百思不得其解的是,我发现这个现象,如果在该句之前随便分配一点内存、不回收(会造成一点泄露),程序就能正常执行完。。。比如:printf("1 addr %x %x\n",pnt,pnt->int_data); int* n=(int*)malloc(2*sizeof(int)); pnt->int_data=(int*)calloc(2,sizeof(int)); printf("2 addr %x %x\n",pnt...
c/c++语言的危险就在这。你只要不去动操作系统保留的内存,程序就不会死。有些时候内存越界还会影响程序流程,比如for循环控制变量为i,在for循环内部进行内存申请,如果控制不好就有可能无意的修改i的值,导致循环次数有错,甚至导致这个for循环死成循环。