【发布时间】:2023-03-07 04:34:01
【问题描述】:
ifstream ifile("Library.dat",ios::in|ios::binary);
Book *book_obj=new Book; //Book is the class name
if(ifile)
{
while(ifile.read((char*)book_obj,sizeof(Book)))
book_obj->Display_BookDetails();
}
ifile.close();
delete book_obj; //Runtime Error is coming here.If I comment out this, then it works fine
我正在从名为 Library.dat 的文件中读取内容。当我执行上述代码时,出现运行时错误访问冲突读取位置 0x004B9B44。注释掉 delete book_obj 效果很好。如何删除 book_obj 以防止内存泄漏。
【问题讨论】:
-
请告诉我们课程
Book。它是否包含任何非 POD 数据成员? -
类书 { 私人:字符串 book_Number;字符串书名;字符串 book_Author;字符串 book_Publisher;字符串 book_Edition; int book_Quantity;公共:书();书(字符串,字符串,字符串,字符串,字符串,int); };
标签: c++ visual-studio-2012 memory-leaks runtime-error placement-new