0

別の CPP プログラム (プログラム 2) を呼び出す CPP プログラム (プログラム 1 と呼びましょう) があります。この 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 のメイン関数の名前を変更し ("calculate()" など)、プログラム 1 のメイン関数から呼び出しました。また、ディレクトリとヘッダー ファイルを適切に含めて、program2 のすべての関数とクラスを program1 で表示できるようにしました。現在、私が立ち往生しているのは、ダブルポインター argv 変数だけです。コマンドプロンプトを介して渡す必要があるパラメーターを別のプログラムを介して渡すにはどうすればよいですか?

program2 のコマンド プロンプトで渡すパラメーターの型は double であることに注意してください。配列を使用しようとしましたが、例外がスローされ続けます。問題を解決しようとしたときに頭に浮かんだことを何でも教えてください。

4

2 に答える 2