牛骨文教育服务平台(让学习变的简单)
博文笔记

C语言函数中定义大数组耗尽堆栈的问题

创建时间:2008-08-26 投稿人: 浏览次数:220
今晚上一同学请我帮忙看一个C程序,GCC编译时一直抱错,说是段错误。
程序本身写的比较差,但编译能通过,只是有几十个警告。
两个小时过去了,在Eclipse+GCC下没有找到问题(这个环境还不熟悉),换到了VC下面,逐步调试,才发现问题出在被main调用的一个叫做readmctal()的函数的前面几行中。该函数如下:
  1. void readmctal(void)
  2. {
  3.     int number,count,sign,num_tally,nflag;
  4.     int ncell,nstep,mstep,sum;
  5.     char *(str_temp[80]);
  6.     float temp_spectra[num_cell][egroup],temp_error[num_cell][egroup];
  7. float temp_flux[num_cell],temp_flux_error[num_cell];
  8.     int total_cell_no[num_cell];
  9.     sum=0;  
  10.     number=0;
  11.     /* open the mctal file */
  12.     if ((fpt_mc=fopen("mctal","r"))==NULL){
  13.         printf("/nERROR - Cannot open mctal file/n");
  14.         exit(1);
  15.     }
  16.     else
  17.     {
  18.         printf("File mctal opened.../n");
  19.     }
  20.     ......
声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。