Несовместимые типы в присваивании - C - PullRequest
0 голосов
/ 30 марта 2012

Я пытаюсь отсортировать массив строк, но мой компилятор продолжает повторять, что в моем назначении есть несовместимые типы.

Ниже приведен код.

for(i = 0; i < 499; i++) {
        max = 0;
        for(j = 1; j < 500; j++) {
            if(strncmp(user_id[max], user_id[j], 9) > 0) {
                printf("max = %s,    j = %s\n", user_id[max], user_id[j]);
                temp = user_id[j];
                user_id[j] = user_id[max];
                user_id[max] = temp;
            }
        }
    }

Следующие две строки выдают ошибку:

 user_id[j] = user_id[max];
 user_id[max] = temp;

Почему я получаю эту ошибку?

EDIT: Извините, я забыл включить это раньше.

char user_id[500][9]; 
char* temp; 
i j and max are int. 

rover-208-149:prog3 kubiej21$ gcc --ansi --pedantic -o prog3 prog3.c 
prog3.c: In function ‘main’: 
prog3.c:46: error: incompatible types in assignment 
prog3.c:47: error: incompatible types in assignment

1 Ответ

3 голосов
/ 30 марта 2012

Массивы нельзя назначить в C. Таким образом, следующее недопустимо:

char user_id[500][9];

user_id[23] = user_id[42];  // Error: trying to assign array

Я не уверен, чего вы пытаетесь достичь, но, возможно, memcpy - это то, что вам нужно?

memcpy(user_id[23], user_id[42], sizeof(user_id[23]));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...