tasa - ¿Qué es la falla de segmentación(núcleo objeto de dumping)?
qué es el dumping y el antidumping (1)
Esta pregunta ya tiene una respuesta aquí:
- ¿Qué es una falla de segmentación? 11 respuestas
Estoy tratando de escribir un programa C en Linux que tenga sqrt del argumento, aquí está el código:
#include<stdlib.h>
#include<stdio.h>
#include<math.h>
int main(char *argv[]){
float k;
printf("this is consumer/n");
k=(float)sqrt(atoi(argv[1]));
printf("%s/n",k);
return 0;
}
Después de escribir mi entrada en el indicador "shell>", gcc me da el siguiente error:
Segmentation fault (core dumped)
"Error de segmentación" significa que intentó acceder a la memoria a la que no tiene acceso.
El primer problema es con tus argumentos de main
. La función main
debe ser int main(int argc, char *argv[])
, y debe verificar que argc
sea al menos 2 antes de acceder a argv[1]
.
Además, dado que está pasando un float
a printf
(que, por cierto, se convierte en un double
al pasar a printf
), debe usar el especificador de formato %f
. El especificador de formato %s
es para cadenas (matrices de caracteres terminadas ''/0''
).