| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 275 人关注过本帖
标题:求问段错误出现的可能性
只看楼主 加入收藏
ximlel
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2015-3-10
结帖率:0
收藏
已结贴  问题点数:20 回复次数:1 
求问段错误出现的可能性
程序代码:
  double * dt_n_pc_x[NUM_CELL];
  initialize_memory(dt_n_pc_x,NUM_CELL,CELL_POINT);
  double * dt_n_pc_y[NUM_CELL];
  initialize_memory(dt_n_pc_y,NUM_CELL,CELL_POINT);
  double * posi_l_pc[NUM_CELL];
  initialize_memory(posi_l_pc,NUM_CELL,CELL_POINT);
printf("duan1\n");
  double * posi_n_pc_x[NUM_CELL];
printf("duan2\n");
  initialize_memory(posi_n_pc_x,NUM_CELL,CELL_POINT);
printf("duan3\n");
  double * posi_n_pc_y[NUM_CELL];
printf("duan4\n");
  initialize_memory(posi_n_pc_y,NUM_CELL,CELL_POINT);
printf("duan5\n");
  double * dt_posi_l_n_pc_x[NUM_CELL];
  initialize_memory(dt_posi_l_n_pc_x,NUM_CELL,CELL_POINT);
  double * dt_posi_l_n_pc_y[NUM_CELL];
  initialize_memory(dt_posi_l_n_pc_y,NUM_CELL,CELL_POINT);

程序代码:
void initialize_memory(double * p[],int N,int * CELL_POINT[])
{
int k,i;
for(k = 0; k < N; ++k)
        {
            p[k] = (double *)malloc(CELL_POINT[k][0] * sizeof(double));
            if(p[k] == NULL)
                {
                    for(i = 0; i < k; ++i)
                        {
                            free(p[i]);
                            p[i] = NULL;
                        }
                    printf("Initialize_memory fail.\n");
                    exit(5);
                }
        }
}


求问大虾们为什么当NUM_CELL变大后,程序在断点3到4之间(也就是double * posi_n_pc_y[NUM_CELL];这句)会出现段错误。
(编译环境ubuntu14 gcc)
搜索更多相关主题的帖子: color 可能性 
2015-03-10 21:31
执笔画江山
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:3
帖 子:265
专家分:1010
注 册:2015-1-13
收藏
得分:20 
段错误的可能性:
1.内存未分配成功,却使用了它。
2.内存虽然分配成功,但是尚未初始化就使用它。
3.内存分配成功且已经初始化,但操作越过了内存的界。
4.忘记了释放内存,造成内存泄露。
5.释放了内存,却继续使用它。

我目前想到的就这么多。坐等大神补充。

授人以鱼,不如授人以渔
2015-03-11 09:11
快速回复:求问段错误出现的可能性
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.015610 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved