首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

柔性数组成员疑问,该怎么解决

2012-03-16 
柔性数组成员疑问supermegaboy博文http://blog.csdn.net/supermegaboy/article/details/4854939阐述了柔性

柔性数组成员疑问
supermegaboy博文 http://blog.csdn.net/supermegaboy/article/details/4854939
阐述了柔性数组成员的使用,想请教下内存释放的问题。如下

C/C++ code
#pragma pack(1)struct test{   int a;   double b;   char c[];};#pragma pack()int main(){    char a[] = "hello world";    struct test *PntTest = (struct test* )malloc(sizeof(struct test) + strlen(a) + 1);    strcpy(PntTest->c, a);    free(PntTest->c); //此释放是否需要?    free(PntTest);    //此处到底free了多少,理论应该是sizeof(struct test)吧?    return 0;}


[解决办法]
free(PntTest->c); //此释放是否需要?
去掉就对了
[解决办法]
第一个不需要了

malloc时会有一个额外的空间用于保存大小等信息
free时会自动处理好的。

只要第二个就行了,可以正确全部释放。

热点排行