指针算术之后释放指针
|
我的问题很简单。说我们有:
char* ptr = (char*) malloc(sizeof(char)*SIZE);
ptr+= SIZE/2;
free(ptr);
当我们释放指针时会发生什么?它是未定义的操作吗?
它会释放所有SIZE缓冲区还是仅释放剩余的SIZE / 2?
在此先感谢您为我消除歧义。
没有找到相关结果
已邀请:
5 个回复
了驳
时,分配器在指针检查指针之前的6个字节处移动。如果找不到签名,则会崩溃:)
傻零凰死授
的自变量与先前通过
和friends分配的指针不匹配,则行为未定义。在您的ѭ4version版本中,您很可能会遇到分段错误或断言失败。 题外话:最好不要在C中强制转换
的结果。
翱抹村
貉骂
念炯