我用C ++编写的程序,与G ++编译,在Ubuntu 13.04运行的32个比特,即是给以下错误:“分段故障(核心转储)”。
int main(int argc, char *argv[]){
printf("1\n");
int x = 0 , y = 0, count = 0;
printf("2\n");
char c;
printf("3\n");
int n_frames = (atoi(argv[1]) - 1);
printf("4\n");
int windowSize = WINDOW_SIZE; // WINDOW_SIZE is a define
printf("5\n");
// And the program go on....
long double frames[n_frames][377];
long double dis_frames[n_frames - (windowSize - 1)];
int tam_dis_frames = n_frames - (windowSize - 1);
long double white_top_hat[tam_dis_frames];
当([1] - 一个通过的argv带来)中的“则n_frames”值较低(试验直至300)的错误不会发生和一切顺利。
当该值较高(如1922)中出现错误。 当错误发生时显示的最后的printf是第四之一的“printf(” 4 \ n“)”。
当该值是1853或降低的“printf(” 5 \ n“)”被示出,但下一个的printf不会显示出来。
任何人有什么可以解决它的主意? 有什么能分割故障源(核心转储)在节目中的一个如此简单的一步....