在Visual Studio 2013上调试C++程序
Debugging C++ program on Visual Studio 2013
当我调试这个简单的程序时,它会给我分段错误,代码上没有错误。
有人知道吗?
返回错误chkstk.asm未找到
#include "stdafx.h"
#include <stdlib.h>
#include <iostream>
#include <string>
#include <iostream>
using namespace std;
class saude{
int dl, MAX, al;
public:
struct pessoa_t{
string nome;
string Morada;
int idade;
int tel;
string perfil; //se for "e" == enfermeiro; "m" == médico; "d" == doente
};
struct pessoa_t t[100];
void queue(){ //mete as posicoes a nulo
dl = -1; //fim da fila
al = -1; //topo da fila
}
void del(){
pessoa_t tmp;
if (dl == -1){
cout << "FILA VAZIA";
}else{
for (int j = 0; j <= al; j++){
if ((j + 1) <= al){ //envia os valores para trás
tmp = t[j + 1];
t[j] = tmp;
}else{ //se chegarmos ao fim da fila ele simplesmente remove o valor
al--;
if (al == -1) dl = -1;
else dl = 0;
}
}
}
}
void add(pessoa_t item){
if (dl == -1 && al == -1){
dl++;
al++;
}else{
al++;
if (al == MAX){
cout << "FILA CHEIAn";
al--;
return;
}
}
t[al] = item;
}
void display() {
if (dl != -1) {
for (int iter = 0; iter <= al; iter++)
cout << t[iter].nome << " ";
}
else cout << "VAZIA";
}
};
int _tmain(int argc, _TCHAR* argv[])
{
saude a;
saude::pessoa_t pessoas[2];
pessoas[0].nome = "Ricardo";
pessoas[0].Morada = "Penafiel";
pessoas[0].perfil = "e";
pessoas[0].tel = 91832782;
pessoas[1].nome = "João";
pessoas[1].Morada = "Penafiel";
pessoas[1].perfil = "m";
pessoas[1].tel = 94832744;
cout << "Fila antes de insercao: ";
a.display();
cout << endl << endl;
for (int iter = 0; iter < 5; iter++){
a.add(pessoas[iter]);
cout << "Nro adicao: " << (iter + 1) << " : ";
a.display();
cout << endl;
}
cout << endl;
cout << "Fila depois de adicao: ";
a.display();
cout << endl << endl;
for (int iter = 0; iter < 5; iter++){
a.del();
cout << "Nro remocao: " << (iter + 1) << " : ";
a.display();
cout << endl;
}
system:"pause";
return 0;
}
您有一个包含2个元素的数组,但您试图访问5个元素。
在saude
中添加一些实际上不是saude::pessoa_t
的东西,而是内存中的随机东西,这将非常糟糕。
相关文章:
- 当回溯以零开始时,如何调试崩溃
- 在linux上调试巨大的C++项目
- 为什么使用__LINE_的代码在发布模式下在MSVC下编译,而不是在调试模式下
- 如何针对特定情况调试和修复此双自由内存损坏问题
- 正在VS调试器中监视映射条目
- 使用调试/崩溃报告将应用程序部署到客户端
- VC++本机单元测试,找不到调试符号
- 如何在C++生成器中禁用"使用调试.dcus"
- 使用vscode调试时,GDB意外退出
- 即使使用调试编译标志,表达式也是"optimized out"
- 调试 CUDA MMU 故障
- 小字符串优化(调试与发布模式)
- 调试和自由执行中的信号处理
- 调试编译的服务器在数据库打开时崩溃
- Visual Studio 调试优化如何工作?
- 如何配置Visual Studio Code以使用cygwin,cmake和gcc进行调试
- 从 exe 文件 (Visual Studio ) 启动时调试断言失败
- 如何在大型c++项目的可视化代码中设置调试
- Qt 调试显示行号
- 如何将可变参数模板转换为多个单个模板?(C++竞争编程调试模板)