С strncmp
strncmp
int strncmp (const char * lhs, const char * rhs, size_t count);
В вашем коде вы пропускаете третий аргумент strncmp
, который является максимальным количеством сравниваемых символов.
Ваша программа имеет потенциальную утечку памяти, так как указатель, возвращаемый strdup()
, будетпотерян после strncmp()
звонка.Кроме того, вы должны знать, что strdup()
может вернуть указатель null
, если произошла ошибка.
Вы должны взять возвращенный указатель strdup()
на переменную и убедиться, что произошла какая-то ошибка.и затем передайте эти переменные strncmp()
.Сделав с strdup()
возвращенными указателями, освободите их, используя free()
.