C++函数导致应用程序崩溃
C++ Function causing Application Crash
我目前很困惑,为什么这个C++函数一直在破坏我当前的程序。
正如你可能会看到的,我有Java背景,现在非常热衷于学习像C++这样的语言。
这个函数应该在每个位置用一个新的Node来填充Node类型的2d数组。我想使用2D数组,而不是向量,因为这是我试图编写的数独解算器。
当我构建并运行应用程序时,只会崩溃并说:
"SudokuSolver.exe已停止工作"问题签名:问题事件名称:BEX应用程序名称:SudokuSolver.exe应用程序版本:0.0.0.0应用程序时间戳:55283d72故障模块名称:MSVCR110.dll故障模块版本:11.0.51106.1故障模块时间戳:5098858e异常偏移:000a326c异常代码:c0000409异常数据:00000007操作系统版本:6.3.9600.2.0.0.768.101区域设置ID:1033附加信息1:332b附加信息2:332b994896f66a7b5d5fb96032f7fbd2附加信息3:2fa1附加信息4:2fa12dec635ddb7f7a8e7c8690abd06a
我正在使用Eclipse用C++进行代码编写。
下面是有问题的函数。
void fillArray(Node grid[][matrixSizeY], string filePath) {
int index = 0;
ifstream inFile;
inFile.open(filePath);
// Check for Errors
if (inFile.fail()) {
cerr << "Error Opening File" << endl;
exit(1);
}
while (!inFile.eof()) {
string line;
getline(inFile, line);
// Get a Vector of each character in the String
vector<string> data;
Utilities::splitEachCharacter(line, data);
printVect(data);
for (int i = 0; i < matrixSizeY; i++) {
string temp = data[i];
int value = stoi(temp, nullptr, 0);
Node node(index, i, value);
grid[index][i] = node;
}
data.clear();
line = "";
index++;
}
}
我觉得我可能应该使用一个函数来创建一个指向新对象的指针数组,我为矩阵中的每个位置调用这个函数,大概是这样的:
Node* getNode(int x, int y, int data) {
Node *node = new Node(x, y, data);
return node;
}
但我真的很困惑如何制作这样的指针数组。如能提供一些帮助和澄清/解释,我们将不胜感激。
提前感谢
更新:
功能现在正在工作,我做了以下更改:
// Function Definition
void fillArray(Node (&grid)[matrixSizeX][matrixSizeY], string filePath);
异常代码对应于堆栈缓冲区溢出。这可能表明一些嵌套调用没有结束,或者局部变量大小有任何多余,可以用编译参数来解决。事实上,
Node node(index, i, value);
grid[index][i] = node;
暗示至少使用节点结构的复制构造函数。请注意,您通过值而不是引用传递Node grid[][matrixSizeY](返回时您的工作将丢失),如果数组很大,则副本将向缓冲区收费。接下来,您不指定第一个数组维度(这是合法的吗?我不确定,因为我认为只有最后一个维度可能是可选的)。
- 应用程序崩溃并显示"symbol _ZdlPvm, version Qt_5 not defined in file libQt5Core.so.5 with link time reference"
- 如何找出应用程序崩溃的原因 - Win 10 LTSB
- 操纵安卓相机的深度图导致应用程序崩溃
- 调用 java 的回调() 时应用程序崩溃.由于 detatchThread 而获得运行时错误
- QCompleter set模型使应用程序崩溃
- Qt 5 应用程序崩溃并出现"qLineEdit::setText"
- 切换NvAPI_Stereo_Deactivate/NvAPI_Stereo_activate会使unity应用程序崩溃
- eglSwapBuffers上的应用程序崩溃
- VLD 使应用程序崩溃
- 由于调用 std::condition_variable 后参数无效而导致应用程序崩溃
- 执行递归函数时 C++ 应用程序崩溃
- 在 C++/CLI/C# 项目中启用"Native Code Debugging"导致应用程序崩溃
- LOCAL_SHARED_LIBRARIES使我的应用程序崩溃
- 为什么使用 nullPtr 调用函数不会使我的应用程序崩溃
- 当删除上下文属性中的QLIST对象时,QT QML应用程序崩溃
- React 本机 0.59 应用程序崩溃并出现 libc 错误
- 当使用“制造”编译的程序中使用库时,应用程序崩溃
- 如何在导致应用程序崩溃的代码中修复指令
- C++多线程应用程序崩溃
- 当使用 /ENTRY:main 和 /MT 运行时库编译为 /SUBSYSTEM:WINDOWS 时,应用程序崩溃