![]() |
1
12
不要试图猜测内存管理。它通常比你聪明;-) 您唯一可以实现的是第一个场景“取消分配”最后1K
然而,即使在这种情况下,也不能保证“foo”会保持不变。您的整个4K可能会被释放,realloc()可能会将内存移到其他位置,从而使您可能持有的指向它的任何指针无效。 新的() 分配存储。使用new()分配的内存不能是realloc(),或者至少不能以任何可移植的方式。STL向量将是C++中的一种更好的方法 |
![]() |
2
5
您没有“分配给保存4096字节的指针”,您有一个指向分配给4096字节的块的指针。
如果您的区块被分配了
您不能更改邮件的起始地址
这是一个限制
现在
对于C++,如果分配内存
|
![]() |
3
3
如果你有
要从一开始就放弃,你可以
|
![]() |
4
1
|
![]() |
5
1
您可以使用realloc()明显地缩短内存。请注意,对于某些实现,这样的调用实际上不会起任何作用。无法释放块的第一位并保留最后一位。 如果你发现自己需要这种功能,你应该考虑使用更复杂的数据结构。数组并不是所有编程问题的正确答案。 |
![]() |
6
1
http://en.wikipedia.org/wiki/New_(C%2B%2B)
|
![]() |
MaPo · Linux,设置锁定ICMP_过滤器选项 7 月前 |
![]() |
Doohyeon Won · 内联函数上的奇怪现象?[关闭] 8 月前 |
![]() |
Bobby · 复合字面值总是左值吗? 8 月前 |
![]() |
9-Pin · C: 嵌套结构的堆栈内存分配 8 月前 |