我有一个 CPP 程序(我们称之为程序 1),它调用另一个 CPP 程序(程序 2)。这个 Program2 是在调试模式下构建的。那是:
int main(int argc, char** argv) {
///Function body#
eerot[0] = atof(argv[1]);
eerot[1] = atof(argv[2]);
eerot[2] = atof(argv[3]);
eetrans[0] = atof(argv[4]); //Exception thrown here due to memory clash
///Continue
}
上面的代码片段描述了我在program2中的主程序的结构。Program2 既没有执行错误,也没有抛出任何异常。现在我想从 program1 调用 program2 的这个主函数,但我被双指针变量卡住了。因为 argv 变量是双指针,即使我能够创建一个字符串,对其进行双重引用并将其作为参数传递给 program2,我也会遇到异常。没有编译错误。所有适当的标题都被完美定义。
我无法编辑 program2,因为它是由其他团队开发的,而且很难理解。我已经更改了程序 2 的主函数的名称(比如“计算()”)并从程序 1 的主函数中调用它。我还适当地包含了目录和头文件,以使 program2 的所有函数和类在 program1 中可见。现在我唯一被卡住的是双指针 argv 变量。如何将必须通过命令提示符传递的参数传递给另一个程序?
请注意,我们在命令提示符中为 program2 传递的参数是 double 类型。我尝试使用数组,但我不断收到异常。让我知道您在尝试解决问题时想到的任何事情。