我一直得到if条件下的错误Segmentation fault我认为这是因为我没有使用strcpy命令,但这也会产生同样的错误。
随着时间的推移,设备将被分配许多字符串,每次少于100个字符。
我错过了什么?

char *aircraft, *aircraft_array[60000], equipment[100];
int size=0;


aircraft=strtok(equipment," ");


while (aircraft!=NULL){

            aircraft_array[size]=aircraft;
            size++;

            if (strcmp(aircraft_array[size],aircraft)==0){
                printf("%s\n",aircraft);
            }


            aircraft=strtok(NULL," ");
        }

最佳答案

问题是变量大小在if语句之前递增,而不是在if语句之后递增

        size++;
        ^^^^^^^
        if (strcmp(aircraft_array[size],aircraft)==0){
                                  ^^^^^

交换报表。

09-06 21:59