elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Como proteger una cartera - billetera de Bitcoin


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Segmentation fault (core dumped)
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Segmentation fault (core dumped)  (Leído 5,381 veces)
neveldine

Desconectado Desconectado

Mensajes: 17


Ver Perfil
Segmentation fault (core dumped)
« en: 3 Mayo 2012, 16:03 pm »

Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4.  
  5. #define SUP 33799
  6.  
  7. int main()
  8. {
  9.    int *cad = NULL;
  10.    int i;
  11.  
  12.    cad = malloc(sizeof(int) * 2);
  13.  
  14.    for (i = 0; i < SUP; i++) {
  15.        cad[i] = i;
  16.        printf("%d ", cad[i]);
  17.    }
  18.    printf("\n");
  19.  
  20.    return EXIT_SUCCESS;
  21. }
  22.  

Si SUP es, por ejemplo, 20, no hay Segment fault. Si le doy un valor, por ejemplo, 33799 lanza este error al ejecutar el programa.

¿Por qué no da error de segmento a partir de cad[2]?

Gracias de antemano


En línea

fary


Desconectado Desconectado

Mensajes: 1.062



Ver Perfil WWW
Re: Segmentation fault (core dumped)
« Respuesta #1 en: 3 Mayo 2012, 16:27 pm »

El buffer es un poco pequeño para algo tan grande,no? :rolleyes:


En línea

Un byte a la izquierda.
Eternal Idol
Kernel coder
Moderador
***
Desconectado Desconectado

Mensajes: 5.937


Israel nunca torturó niños, ni lo volverá a hacer.


Ver Perfil WWW
Re: Segmentation fault (core dumped)
« Respuesta #2 en: 3 Mayo 2012, 16:58 pm »

Por casualidad ... en algun momento llegaras a memoria invalida ... calcula que cada pagina de memoria suele ocupar 4096 bytes. En sintesis C/C++ te permite acceder a cualquier direccion aunque este fuera de los limites logicos de tu reserva de memoria, no lo hagas.
En línea

La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste.
Juan Domingo Perón
neveldine

Desconectado Desconectado

Mensajes: 17


Ver Perfil
Re: Segmentation fault (core dumped)
« Respuesta #3 en: 3 Mayo 2012, 17:03 pm »

Vale, por lo que me dices, entiendo que el sistema operativo detecta el fallo de segmento cuando te sales del rango de direcciones que te asigna, ¿verdad?

Creo que voy a tener que leer más sobre el heap...
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Segmentation Fault al realizar funcion sobre Matriz « 1 2 »
Programación C/C++
Manu_The_King 15 6,160 Último mensaje 5 Enero 2013, 21:53 pm
por avesudra
[C] Segmentation Fault - Fallo manejo de cadenas
Programación C/C++
Miky Gonzalez 7 2,832 Último mensaje 21 Marzo 2013, 01:03 am
por durasno
Segmentation Fault ('core' generado)
Programación C/C++
Magner 1 3,688 Último mensaje 4 Marzo 2015, 17:01 pm
por Eternal Idol
Segmentation fault (core dumped)
Programación General
MPLS 1 1,912 Último mensaje 14 Octubre 2015, 14:06 pm
por Becerra
segmentation fault core dumped sdl2 c++
Programación C/C++
misternaim 0 1,420 Último mensaje 22 Marzo 2016, 20:12 pm
por misternaim
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines