分割错误(核心转储)

问题描述:

我在C上是比较新的,我试图运行一个简单的程序,我得到这个错误消息:分段错误(核心转储)我只是想打印任何值的数组位,但我不能,我会很感激这个错误的任何帮助。分割错误(核心转储)

#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]); 
} 

该数组似乎超过堆栈大小(位是堆栈中的数组)。您可以尝试将其设为全局或使用malloc分配数组。

+0

这工作谢谢! – Percy 2012-02-14 05:16:02

请注意,这是Valgrind擅长为您准确定位的事情。如果你在一大块代码中完成了这个工作,Valgrind会指出你错误的那一行。

对于在这个时代学习C,Valgrind是必不可少的。

+3

不是一个真正的答案,更多的是评论 – David 2013-02-22 03:46:13