2012-02-14 22 views
9

Soy relativamente nuevo en C, estoy intentando ejecutar un programa simple y aparece este mensaje de error: Error de segmentación (núcleo volcado) Solo quiero imprimir cualquier valor de los bits de la matriz, pero no puedo, agradecería cualquier ayuda en este error.Error de segmentación (núcleo volcado)

#include <stdio.h> 
#include <stdlib.h> 
#include <math.h> 
#include <malloc.h> 

int main() 
{ 
    const long int N = 1000000000; 
    const int smallN = 125000000; 
    char bits[smallN]; 

    for(int i=0; i<smallN; i++){ 
     bits[i]=0xff; 
    } 

    printf("character = %c \n", bits[5]); 
} 

Respuesta

9

La matriz parece exceder el tamaño de la pila (bits es una matriz en la pila). Puedes intentar hacerlo global o asignar la matriz usando malloc.

+0

¡Eso funcionó gracias! – Percy

5

Tenga en cuenta que este es el tipo de cosas que Valgrind es bueno para identificarse para usted. Si hubieras hecho esto dentro de una gran porción de código, Valgrind te señalaría la línea incorrecta.

Para aprender C en esta época, Valgrind es indispensable.

+3

realmente no es una respuesta, más de un comentario – David

Cuestiones relacionadas