为什么这个c++程序在多个文件上通过命令提示符运行时会崩溃,而在单个文件上运行时却不会
Why this C++ program crashes specifically when run through command prompt on multiple files but not when run on individual files?
int main() {
string xs;
string* atom=new string[60000];
string* aa=new string[60000];
string* pos=new string[60000];
string* aaid=new string[60000];
string* chain=new string[60000];
string* X=new string[60000];
string* Y=new string[60000];
string* Z=new string[60000];
string* occupancy=new string[60000];
string* bfactor=new string[60000];
ifstream inFile;
inFile.open ("1ASO.pdb"); //similar to 1ASO.txt
//middle codes
delete [] atom;
delete [] aa;
delete [] pos;
delete [] aaid;
delete [] chain;
delete [] X;
delete [] Y;
delete [] Z;
delete [] occupancy;
delete [] bfactor;
inFile.close();
}
这段代码工作得很好,但是当我将其更改为通过命令提示符输入文件时(如下所示),对于特定文件(如1ASO.pdb),它会崩溃。我在命令提示符中使用以下命令运行所有pdb文件的程序。
For %f in (*.pdb)执行程序"%f"
我的猜测是我正在做动态内存分配错误,但不确定如何修复它。
int main(int argc, char* argv[]) {
string xs;
string* atom=new string[60000];
string* aa=new string[60000];
string* pos=new string[60000];
string* aaid=new string[60000];
string* chain=new string[60000];
string* X=new string[60000];
string* Y=new string[60000];
string* Z=new string[60000];
string* occupancy=new string[60000];
string* bfactor=new string[60000];
ifstream inFile;
inFile.open (argv[1]); //similar to 1ASO.txt
//middle codes
delete [] atom;
delete [] aa;
delete [] pos;
delete [] aaid;
delete [] chain;
delete [] X;
delete [] Y;
delete [] Z;
delete [] occupancy;
delete [] bfactor;
inFile.close();
}
你分配这些字符串有什么特殊的原因吗?为什么不直接将它们声明为局部变量呢?
你看过argv[1]是什么吗?您确定这是您想要的文件名吗?
相关文章:
- CMake-按正确顺序将项目与C运行时对象文件链接
- 读取文件时运行时的未知行为
- 生成文件无法在运行时链接库
- glfw 的基本设置会导致与 emscripten 生成的 js 文件中的事件侦听器有关的运行时错误
- 在 Linux 上没有 /proc/self/exe 的 C/C++ 运行时可执行文件的大小?
- 选择特定版本的 Visual Studio 命令行工具包,并根据特定版本的C++运行时环境编译文件
- 如何在运行时对程序创建的.sys文件设置文件版本
- C++ 可执行文件在运行时找不到库,即使它在 /usr/lib 中(在 Linux 上)
- pybind11:属性错误:尝试从 py 文件运行函数时,模块'XXX'没有属性'YYY'
- 如何在运行时从 c++ 中的 DLL 文件创建对象?
- 在 Qt 中将 x 可执行文件作为按钮事件运行时出错
- 访问使用 Bazel 构建的应用程序中的运行时文件
- Bash 代码,仅在当前可执行文件完成运行时在循环中运行可执行文件
- 如何处理在 bash 文件中获取运行时输入的 c++ 程序
- cl 生成的可执行文件在第一次运行时运行速度非常慢
- 程序运行时,未读取文件
- 为我的生成文件运行时出错.cpp
- C++条件包含文件运行时
- 声明的Hello World DLL文件.运行时未找到外部函数
- 文件/运行时权限的Unix/Linux API