簡體   English   中英

如何調用主要處於調試模式的程序或代碼?

[英]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,我得到異常。 沒有編譯錯誤。 所有適當的標題都是完美定義的。

我無法編輯program2,因為它是由其他團隊開發的,很難遵循。 我已經改變了程序2的主要功能的名稱(比如說“calculate()”)並從program1的main中調用了它。 我還適當地包含了目錄和頭文件,以使program1中的所有函數和program2類都可見。 現在我唯一困住的是雙指針argv變量。 如何通過命令提示傳遞我必須通過另一個程序傳遞的參數?

請注意,我們在program2的命令提示符中傳遞的參數是double類型。 我試圖使用數組,但我不斷向我拋出異常。 在嘗試解決問題時,讓我知道您想到的任何事情。

我相信問題是main()聲明中的三重指針。 你可能意味着:

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

要么

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

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

以上兩者都是指向數組的指針。 你所擁有的是一個指向2D數組的指針,所以你訪問元素的方式最終會超過數組元素的數量。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM