c - “半释放”一块内存来缩小它是否安全?
问题描述
有人告诉我,即使它是安全的,这绝对是不好的做法。我的问题是,这样做真的安全吗,还是完全未定义的行为?假设我分配了一个 100 字节的内存块,但我想将其缩小到 50。将 50 添加到指针并释放它是否安全?这是代码中的示例:
char *ptr = malloc(100);
//...
free(ptr+50);
//Presumably, since I freed the second half only, would that be equivalent to ptr = realloc(ptr, 50);?
这是跨平台/未定义的行为吗?使用这种缩小内存的方法安全吗?
解决方案
推荐阅读
- android - 如何使用数据绑定在relativelayout中设置layout_centerVertical
- excel - 如何在excel中获取日期是否是一个月的第一个,第二个等星期一
- ruby-on-rails - 教程中的 create_list 错误
- javascript - AJAX 上的表单提交延迟
- javascript - 在浏览器中运行 reactjs webapp 时出现黑屏
- php - Laravel Blade 复选框未选中
- java - 如何验证 Vaadin 8 PasswordField?
- dependency-injection - Xunit项目中的依赖注入
- java - 在 Kotlin 中设置匿名接口
- sockets - 在两个处理器之间共享计算