首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在调试模式下调用具有main的程序或代码?

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

Stack Overflow用户
提问于 2019-05-22 03:04:47
回答 2查看 64关注 0票数 0

我有一个CPP程序(让我们称它为程序1),它调用另一个CPP程序(程序2)。此Program2是在调试模式下构建的。这就是:

代码语言:javascript
复制
   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的main函数的名称(比如改为"calculate()"),并从program1的main调用它。我还适当地包含了目录和头文件,以使program2的所有函数和类在program1中可见。现在我唯一被卡住的就是双指针argv变量。我如何传递我必须通过命令提示符传递的参数,这些参数是通过另一个程序传递的?

请注意,我们在program2的命令提示符中传递的参数是double类型。我试着使用数组,但我总是收到抛出的异常。当你试图解决这个问题时,请告诉我你想到的任何事情。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-05-22 03:09:22

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

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

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

票数 0
EN

Stack Overflow用户

发布于 2019-05-22 03:11:07

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

上面这两个都是指向数组的指针。你得到的是一个指向二维数组的指针,所以你访问元素的方式最终会超过数组元素的数量。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56244903

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档