读书人

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

发布时间: 2012-03-16 16:34:56 作者: rapoo

柔性数组成员疑问
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时会自动处理好的。

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

读书人网 >C++

热点推荐