昨天不能上传图片,今天我来手写出来请教。 我分别调用两次malloc,第一次P1=alloc(3);第二次P2=malloc(4); 仿真时内存分配成功,执行到P1=,alloc(3);后一条语句时候p1=0x000001, P1+1=0x000002,在此之后到P2=malloc(4)之前没有释放内存。 但是程序执行到*P2=malloc(4)后P2=0x000001....居然和P1指向的同一个地址,可是*P1=alloc(3)得到的内存我没有释放掉啊。 请问这是什么问题呢? 因为单位不能上网 我在这里把程序大该的写一下: main() { unsigned char *p1,*p2; p1=malloc(3); while(NULL==p1); p1=0x01; ....
p2=malloc(3); while(NULL==p2); p2=0x02; ....
free(p1); free(p2); }
菜鸟在此致谢! |