私は信頼できるデータ転送プロトコルを作成しており、関数のプロトタイプを持っています
void tolayer5(int, char data[]);
とともにstructs
struct msg {
char data[20];
};
struct pkt {
int seqnum;
int acknum;
int checksum;
char payload[20];
};
そして、この形式で関数を呼び出すと:
tolayer5(A, packet.payload);
とはどこA
にあり、「 への未定義の参照です。ここに何が欠けているかを教えてもらえますか? 」というエラーが表示されます。int
packet.payload
struct pkt
'tolayer5(int, char*)'
void tolayer5(int AorB, char data[])
{
int i;
if (TRACE>2)
{
printf("TOLAYER5: data received:");
for (i=0; i<20; i++)
printf("%c",data[i]);
printf("\n");
}
}
原題に協力してくださった皆様、ありがとうございました!:)しかし、それを修正しようとすると、配列内の文字のアドレス指定が間違っていることに関係があると思われる無限ループに遭遇しました(C
このようにしてからしばらく経ちました。見つけるのを手伝ってもらえますかどこで無限ループを作成していますか?
上記のコードを現在使用しているものに更新しました。主な変更点は関数にあることに注意してください。
void tolayer5(int AorB, char data[])
そして、関数内のこの行:printf("%c",msgReceived.data[i]);
今はただ:
printf("%c",data[i]);