0

作为更大程序的一部分,我正在尝试组合两个结构数组。我还试图将新的传递给打印功能。我知道该函数有效,因为当我将其中一个数组传递给它时,它会正确打印。

这是结构,我确信它是正确的,因为当我将它的数组传递给另一个函数时,该函数起作用。

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;

我的前两个数组是 runarrayboys 和 runarraygirls,并且是结构类型 runner_t 的数组。第三个是runarrayall。这就是我尝试结合它的方式。当我尝试运行它时,我遇到了分段错误。在将 printfs 放在所有地方之后,我很确定它在第二个 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

2

你在初始化runarrayall吗?

runarrayall = (runner_t *)malloc( sizeof(runner_t)*(x + y) );
于 2013-10-30T19:44:08.443 回答