如何在调试模式下调用具有 main 的程序或代码?

How do I call a program or code which has main in debug mode?

我有一个 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 的这个 main 函数,但我被双指针变量困住了。因为 argv 变量是双指针,即使我能够创建一个字符串,对其进行双重引用并将其作为参数传递给 program2,我也会遇到异常。没有编译错误。所有适当的 header 都已完美定义。

我无法编辑程序 2,因为它是由其他团队开发的,很难遵循。我已经更改了程序 2 的主要函数的名称(比如 "calculate()"),并从程序 1 的主要函数中调用了它。我还适当地包含了目录和 header 文件,以使 program2 的所有功能和 类 在 program1 中可见。现在我唯一遇到的问题是双指针 argv 变量。如何将必须通过命令提示符传递的参数通过另一个程序传递?

请注意,我们在命令提示符中为program2 传递的参数是double 类型。我尝试使用数组,但我不断收到异常抛出。让我知道您在尝试解决问题时想到的任何事情。

我认为问题出在 main() 声明中的三重指针。你的意思可能是:

int main(int argc, char** argv) {

int main(int argc, char* argv[]) {

您想要 char **argv ... 或 char *argv[],而不是 char **argv[]

以上都是指向数组的指针。你所拥有的基本上是一个指向二维数组的指针,所以你访问元素的方式最终会超过数组元素的数量。