bub*_*ble 4 c
我的问题很简单.我们通常通过声明一个指针然后为该指针分配一块内存来分配内存.假设代码中的某个地方我碰巧使用了
ptr = ptr + 1
然后我用
free(ptr)
谁能说出会发生什么.整个内存块将被取消分配或其他内容.我可以部分解除内存吗?
zwo*_*wol 7
你必须总是传递与你得到的完全相同的指针(或.)如果你没有,"行为是未定义的",这是一个艺术术语,这意味着你不能依赖程序在任何可预测的行为办法.但是,在这种情况下,您应该会立即崩溃.(如果你运气不好,它会破坏内存,导致一段时间后崩溃,或者更糟糕的是输出不正确.)freemallocrealloc
free
malloc
realloc
部分解除分配内存的唯一方法是realloc使用较小的大小,但这仅适用于最后修剪,并且不能保证修剪掉的块可用于其他一些分配.
归档时间:
14 年,5 月 前
查看次数:
205 次
最近记录: