より大きなプログラムの一部として、構造体の 2 つの配列を結合しようとしています。また、新しいものを印刷機能に渡そうとしました。関数が機能することはわかっています。配列の 1 つを渡すと、正しく出力されるからです。
これは構造です。その配列を別の関数に渡すと関数が機能するため、正しいと確信しています。
typedef struct {
long unsigned bibnum;
char lastname[charnum];
char firstname[charnum];
int grade;
char team[charnum];
char state[charnum];
int time1;
float time2;
} runner_t;
最初の 2 つの配列は runarrayboys と runarraygirls で、構造体型 runner_t の配列です。3 つ目は runarrayall です。こんな感じで組み合わせてみました。実行しようとすると、セグメンテーション違反が発生します。printfs をあちこちに配置した後、2 番目の for ループの宣言行にあると確信しています。
while (p<(x+y))
{
for (q=0; q<x; q++)
{
runarrayall[q] = runarrayboys[q];
p++;
/* printingfucntion(runarrayall[q]); */
}
for (q=x; q<(x+y); q++)
{
printf("in for loop2 \n");
runarrayall[q] = runarraygirls[n];
n++;
p++;
}
}
印刷機能のコメントを外すと、次のエラーが発生します。
LA2.c:(.text+0xdaa): undefined reference to `printingfucntion'
collect2: ld returned 1 exit status
他の機能と同じ方法で配列を渡しましたが、