У меня проблема с функцией strcmp (тот же вопрос здесь, но там не хорошие ответы). Если я сравниваю 2 одинаковые строки, но одна строка из структуры, эта строка неправильно "переводится" в ассемблерный код. Каждый char[] из структуры представляет собой случайные 3 символа. Изображение strcmp.asm
#define CONS 60
typedef struct LinkCity{
char city[CONS]; // i get this char[] from file by using fgets()
struct LinkCity* next;
} tLinkCity;
/***************************************/
typedef struct {
int NumberOfCity;
tLinkCity* Link;
double** distances;
} tDatabaze;
/***************************************/
int GetIndexOfCity(tDatabaze* db, char * city){
printf("%s %s", db->Link->city, city); // > Barcelona\n Barcelona (yes, here is a newline)
str = strcmp(db->Link->city, city); // str = 1 (=it should be 0)
}
fgets()
, не забыли ли вы также удалить символ новой строки в конце? А что такоеtSeznamMest
и где вообще выделеноdb->Link
? Опубликуйте реальный пример, воспроизводящий проблему, плз. - person WhozCraig   schedule 26.12.2013strlen()
говорит для двух строк? - person Barmar   schedule 26.12.2013