我有一个结构 malloc()'d,在使用它们之后,我想 free() 它,但我的程序在这里冻结了。谁能告诉我,我做错了什么?
这是我的代码:
struct data
{
char *filename;
char *size;
};
//primarypcs is a long type variable
struct data *primary = (struct data *)malloc( primarypcs * sizeof( struct data ) );
memset( primary, 0, sizeof(struct data *) * primarypcs );
...
...
...
for ( i = 0; i < primarypcs; i++ )
{
free( primary[i].filename ); //<----my program freezes here
free( primary[i].size ); //<----or here
}
free( primary );
提前致谢!
坎皮
编辑:
我怎样才能正确地为文件名和大小分配内存?
编辑2:
对不起,但我很着急,我没有告诉你你需要的所有信息。让我现在做 :) 基本上,我想创建一个应用程序,它获取两个给定驱动器/文件夹的文件列表,然后比较它们。我认为(并且仍然这样做),最简单的方法是,当我将文件名及其大小存储在上述结构中时。所以我必须为文件名和大小动态分配内存(我认为这是他们所说的),也必须为结构分配内存。