malloc()函数,每当要分配的堆内存大小比较小时漏缺(小于33页,33*4*4096字节大小),malloc函数会映射33页,你说的这种情况就是属于malloc函数的一个bug,但这会影响下次使用malloc()函数,如果你在*p=1.1;后在进行一次malloc()你可以观察到打印出来的*p是有问题的,汇总malloc()根本不会成功。你这里可以顽强的赋值原因是之后就没有用malloc了,而且malloc()是按33页块来映射的,所有出现你说的现象。建议不要这样,否则后面使用malloc(返尘辩)函数会出问题,而且很兄岩难发现的。