未加载 ntdll.pdb的可能错误原因

未加载 ntdll.pdb的可能错误原因

 

 

 

原因一: 程序中的指针指向越界。
解决方案: 取消指针对非法地址的指向。

原因二: 试图对非 new 申请的内存用 delete 进行释放,只有用new申请的内存才能用 delete 来释放,其他只能由系统自动释放。
解决方案: 删除释放该内存的 delete 语句。

曾经运行的时候出现过这个问题,后来发现自己new一个数组的时候写成了
int *data = new int(MAX_SIZE),然后delete []data。
这样在对data[i]进行操作的时候有时候会出现这个错误或者触发断点。

 

例如:

struct PCB
{
    string procsess_name;//进程名
    int arrival_time;//进程到达时间
};
int main()
{
    PCB first_node;//声明一个结构体变量
    PCB*first=&first_node;
    delete first;//试图释放first所指向的内存,报错
}

注意: new 和 delete 语句是成对出现的

你可能感兴趣的:(c++入门宝典)