什么导致我free报错?
typedef struct file_tnode
{
file_t *file;
int fd;//文件标识符
int count;//文件用户数
struct file_tnode *next;
}gfile_tnode;
typedef gfile_tnode *pgfile_tnode;
加了这三句话(fspgfile_tnode是pgfile_tnode类型,file是一个结构体指针)
fspgfile_tnode-> file = file;
fspgfile_tnode-> fd = fd;
fspgfile_tnode-> count = 1;
这样赋值后结构体
free(file);
file == NULL;
free(fspgfile_tnode);
fspgfile_tnode == NULL;
出错
linux下gcc调试出现问题提示(corrupted double-linked list)
我基本可以确定是在那三句话位置出错。就是不知道怎么回事??
谢谢大家帮我看看
[解决办法]
还有
file == NULL;
fspgfile_tnode == NULL;
你这是赋值还是是什么判断的意思???
[解决办法]
用malloc申请空间了吗?
[解决办法]
要看你怎么创建的对象阿,如果你用file_t* p = new file_t;的话,用free当然有问题了。
[解决办法]
指针指向的空间是否存在,是否为已经释放的空间