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'' ).