C/C++语言中关于free的问题

查看:147
本文介绍了C/C++语言中关于free的问题的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

C/C++如果使用了如果用free分配了一块大小为x bytes的空间的话, 据说那块空间其实不止x bytes, 还会有多出的一部分用来保存分配空间的大小等信息, 这也是为什么free的时候只需要传一个指针进去进行了, 我想知道的是, 那如果free的时候我不传起点这个头指针进去, 而是把空间中任意位置的某个指针传进去, 这样的话会发生什么呢?

解决方案

题主是这个意思吗?

#include <stdio.h>
#include <stdlib.h>

int main()
{
    int* ptr = (int*)malloc(3 * sizeof(int));
    printf("%x\n", ptr);
    printf("%x", ptr + 1);
    free(ptr + 1);
    return 0;
}

会导致未定义行为。http://www.cplusplus.com/refe...

这篇关于C/C++语言中关于free的问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆