内存是按块分配的,在内存管理里面,所有可以分配的内存就像诸多果实一样挂在一颗大树上。
分配内存的时候,会按照所给的大小在树上找到合适大小的果实;在释放的时候,将整个果实全部回收。
没有买梨子吃一口再还给店家的道理的。
应该不能,你可以在free后再加一句printf("%s",p);看有没有输出
看了半天总算明白你的意思了。。。
常规情况下不行的,除非你自己另外实现下内存分配算法。所以这就要求程序员合理使用内存,比如你能确定每次最多就3个字符,那申请的时候就应该只申请4。总之,确保够用,但不要浪费。就和我们平时吃饭打饭一个道理啊~