Я использую strcmp следующими способами.
- Передача имен char []
-
Передача указателей на строковые литералы но, второй результат в seg-ошибке. даже если я подтвердил, что указатели указывают на правильные строковые литералы, я смущен тем, почему я получаю seg-ошибку. Вот код: -
#include <stdio.h> #include <stdlib.h> #include <string.h> int main(int argc, char const *args[]) { char firstName[strlen(*++args)]; strcpy(firstName, *args); char lastName[strlen(*++args)]; strcpy(lastName, *args); printf("%s\t%s\n", firstName, lastName); printf("%d\n", strcmp(firstName, lastName));// this works printf("%d\n", strcmp(*(--args),*(++args)));//this gives me a seg fault return EXIT_SUCCESS; }
Я сохраняю его как str.c, и когда я его компилирую, сначала я получаю следующее предупреждение:
[[email protected] examples]$ gcc -Wall str.c -o str
str.c: In function ‘main’:
str.c:15: warning: operation on ‘args’ may be undefined
наконец, запустив его, дает ошибку seg, как показано ниже
[[email protected] examples]$ ./str Jimmy Neutron
Jimmy Neutron
-4
Segmentation fault (core dumped)