0

より大きなプログラムの一部として、構造体の 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

他の機能と同じ方法で配列を渡しましたが、

4

1 に答える 1