'main'已停止工作 - C++ [dev++]
'main' has stopped working - C++ [dev++]
我的代码确实很奇怪。有时起作用,在其他时间崩溃。
崩溃时说:
问题导致该程序停止正确工作
我的main
:
int main() {
start();
Read();
cout << "Enter the code of the course: ";
cin >> coursecode;
cout << "n1111111n";
searchCourse(coursecode);
cout << "n222222n";
return 0;
}
我在搜索操作功能上方和下方写了两个couts,以查看程序是否编译了所有行。它确实确实编译了所有内容,最后它在崩溃之前打印了222222。
开始方法仅创建一个二进制对象的数组,然后存储根据他们的课程,学生数据(从文本文件中读取)。
start():
BinaryTree *a[10];
void start()
{
for(int g=1;g<=10;g++)
{
a[g] = new BinaryTree(g);
}
}
搜索Course():
void searchCourse(string code)
{
for(int j=1;j<=count;j++)
{
if(a[j]->checkit(code)!=0)
{
a[j]->display();
break;
}
}
}
binarytree.h中的checkit():
bool checkit(string m)
{
if (root==NULL)
return false;
else
if(root->data.getCourse()==m)
return true;
else
return false;
}
BinaryTree *a[10];
for(int g=1;g<=10;g++)
{
a[g] = new BinaryTree(g);
}
将有一个内存例外。您的数组为10,并且您正在尝试访问第11个元素(因为您要直到g<=10
,而a[10]
是第十一个元素)。使用:
for(int g=0;g<10;g++)
而是。如果二进制树从1开始。
,您可能还必须执行new BinaryTree(g+1);
这是您代码中其他位置的错误,例如for(int j=1;j<=count;j++)
(for(int j=0;j<count;j++)
可能是您想要的)。
数组从0开始。为什么索引在'c'?
相关文章:
- 请发现它在 dev 中工作的错误,但在 hackerrank 中不起作用
- 无法在 dev-c++ 上编译程序?
- Dev c++ mingw 不再编译
- 如何在 Windows 上将bcrypt_gensalt与 /dev/urandom 一起使用?
- 我正在使用dev c ++,但收到错误(C++98'array'必须由构造函数初始化)
- dev Wx Dev C++ vs Graphics.h?
- dev如何在C++中比较二进制数
- 在linux中为c++dev配置VSCode
- DEV C++ 第 69 行 [错误] ISO "for" 范围更改了"i"的名称查找 [-允许]
- dev在试图从dev c++mingw 4.8.1中的文件读取时接收分段错误
- 我有一个C++函数,它在Dev C++中编译,但在G++中不编译
- 写入/dev/ttyS0后读取0字节
- 如何将 stderr 重定向到 /dev/null
- 如何创建C++DLL(使用DEV -C++)并在MT4脚本中使用(逐步)
- auto 关键字在 Dev c++ 中不起作用
- 从 win 7 升级到 Win 10 后,出现 Dev-C++ makefile.win 编译错误
- 如何检测 ofstream 是否正在写入 /dev/null
- 如何将 libproxy-dev 链接到现有的 cmake 项目(C++)?
- 在哪里调用主函数(dev c ++)
- mmap with /dev/input/event*