根据给出的代码,result指向的内存块长度是14字节。原因是通过malloc分配了10个字节的内存空间,并且使用sizeof(int)来获取int类型的字节长度,即4字节。因此,总共分配了10+4=14字节的内存空间。

在free的操作中,使用了(result + 1)来获取result指向内存块的下一个地址,然后将其转换为void指针类型。接着,通过强制类型转换为int指针类型,并减去1,即指向result指针指向的内存块的起始位置。因此,free掉的字节长度是4字节。

假如int是4字节长度int result = intmalloc10 + sizeofint;free intvoidresult + 1 - 1;result指向的内存块长度是4还是14?free掉的字节是4长度还是14字节长度

原文地址: http://www.cveoy.top/t/topic/iEok 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录