estoy usando strcmp en las formas siguientessegfault con strcmp
- Passing char [] nombres de matrices
punteros Pasando a los literales de cadena pero, el segundo resultado de culpa seg. a pesar de que me han confirmado que los punteros punto para corregir los literales de cadena, estoy confundido en cuanto a por qué estoy recibiendo culpa seg .. Aquí está el código: -
#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; }
Estoy ahorrando como str. c y cuando lo compilo, primero consigo siguiente advertencia:
[[email protected] examples]$ gcc -Wall str.c -o str
str.c: In function ‘main’:
str.c:15: warning: operation on ‘args’ may be undefined
fin de ejecutarlo, da un fallo seg como se muestra a continuación
[[email protected] examples]$ ./str Jimmy Neutron
Jimmy Neutron
-4
Segmentation fault (core dumped)
La votación "demasiado localizada" en esto no tiene ningún sentido. Podría decirse que es un duplicado de http://stackoverflow.com/questions/7877258/why-does-this-ii-3-generate-a-warning-may-be-undefined ya que la verdadera pregunta es "¿qué significa esta advertencia? " pero demasiado localizado es simplemente perverso: inútil y sin sentido. – Flexo