vs2019出现“不包括wntdll.pdb”错误
错误提示
出错的地方在于:我想申请一段指定大小为 STACK_INIT_SIZE * sizeof(SElemType) 的内存空间,但是初始化指针时用的 ( ) 而不是 [ ]
变成了 “申请一个SElemType型变量空间,赋初值为STACK_INIT_SIZE ,并定义一个指针S.base指向该地址空间”
S.base = new SElemType(STACK_INIT_SIZE);
改正之后,“申请STACK_INIT_SIZE 个 SElemType型变量空间,没有赋初值,并定义一个指针S.base指向该地址空间开始处”
S.base = new SElemType[STACK_INIT_SIZE];
改完之后下面的delete S.base; 还要改为 delete[] S.base;
出错代码:
//栈的顺序存储表示
typedef struct
{
SElemType* top; //栈顶指针,指向栈顶元素的后一个位置
SElemType* base; //栈底指针,在栈构造之前和销毁之后,base 的值为 NULL
int stacksize; //当前已分配的存储空间,以元素为单位(当前可使用的最大容量)
}SqStack;
//栈的初始化(构造一个空栈)
Status InitStack(SqStack& S)
{
S.base = new SElemType(STACK_INIT_SIZE);
if (!S.base)
{
exit(OVERFLOW); //存储分配失败
}
S.top = S.base;
S.stacksize = STACK_INIT_SIZE;
return OK;
}
//栈的销毁
Status DestroyStack(SqStack& S)
{
delete S.base;
S.base = S.top = NULL;
S.stacksize = 0;
return OK;
}
附上解决我问题的几篇关于指针的文章
1.走进C++程序世界-----指针(动态申请空间和释放空间)
2.new int(),new int[]和int *a=new int(),int *a=new int[]
3.C++ 中的错误“ 未加载 wntdll.pdb ”及堆区数据的释放