C语言中malloc分配内存大小:result指向的内存块长度是4还是14?
result指向的内存块长度是14字节。
这是因为在malloc函数中,我们分配了10个字节的内存空间,然后又使用了sizeof(int)来获取一个int类型的字节长度,将其加到了原始的内存空间长度上。所以总共分配了10 + sizeof(int) = 10 + 4 = 14字节的内存空间。
这个14字节的长度并不存储在result指针的内容中,而是存在于分配的内存空间中的前4个字节。result指针只是指向这块内存空间的起始地址,并不包含其长度信息。
当我们调用free函数时,只需要传入malloc或calloc函数返回的指针,即可释放之前分配的内存空间。free函数会根据malloc或calloc函数分配的内存块的长度来释放相应的字节长度。所以在这里,free掉的字节长度是14字节。
原文地址: https://www.cveoy.top/t/topic/qk0B 著作权归作者所有。请勿转载和采集!