问题如图:
问题背景:
vscode 运行cpp文件
原因:
定义了两个结构体:
typedef int Elemtype; //罪魁祸首之一
typedef struct {
int key;
Elemtype data;
} Elem;
typedef struct {
Elem * e;
int currentNum;
int size;
} HashTable;
于是在一个使用了HashTable的函数里,我这样初始化了HashTable:
H->size = MAXNUM;
H->e = (Elem *)malloc(MAXNUM * sizeof(Elemtype));
H->currentNum = 0;
Elem错写成了Elemtype,结构体指针赋值错误
解决方法:改回来就好了。
ps:
遇到奇怪的bug不要慌,说不定就是这样奇怪的小问题,搞出了大事情。
本文介绍了一个在VSCode中运行C++程序时出现的结构体指针赋值错误问题及解决方案。错误源于将结构体名称Elem错写为Elemtype,导致内存分配不当。通过纠正结构体名称,问题得以解决。
883

被折叠的 条评论
为什么被折叠?



