を機能させる構造体のリストと構造を渡す:は、私がプロトタイプを持つ関数を持っている
void procedureForEachWave(struct barge *Barge, struct settings *Settings, struct wave *Wave)
私は別の構造が、私はいくつかのスレッドで実行する機能に情報を送信するために使用threadData
と呼ばれている別の関数では、この構造の要素の一つはstruct wave
のリストであるので、このコードの短いvesionが行く:
struct threadData data;
data.waveList = (struct wave*) malloc(sizeof(struct wave)*nrOfWaves);
私は基本的に第1の構造データへのポインタを送信する別の機能でこれを使用し、そしてこの関数の中で"procedureForEachWave"関数は次のようなループで呼び出されます。
procedureForEachWave(data->Barge, data->Settings, &data->waveList[i]);
これは問題なく動作します。しかし、私は1つのウェーブだけを使うという分析もしたいのです。つまり、リストには1つの要素しか含まれていないので、最初の関数を呼び出す必要はありません。私はこれをしたいだけです:
procedureForEachWave(Barge, Settings, &data.waveList[0]);
これは動作しません。どうして?どうすればそれを稼働させることができますか?明確にするため、データはポインタではなく変数として宣言され、割り込みと設定はすでにポインタになっています。 waveListは次のように宣言されています:
data.waveList = (struct wave*) malloc(sizeof(struct wave));
「動作しない」とはどういう意味ですか?コンパイルエラーまたは実行時エラーが出ますか、それとも期待していないランタイム結果を出すのですか?コンパイラ/リンカが準拠している場合は、正確なエラーメッセージを投稿してください。 – Mahesh
複数の読み込みの後でもこれを理解することはできません。 PlsはあなたのQnを簡単に言い換えることを検討します –
実行されません - あなたは実行時にあなたが気に入っているようにコンパイルしないか、動作しません。 –