标题:关于全局变量,请教大家,谢谢
只看楼主
刮目相看
Rank: 2
等 级:论坛游民
帖 子:25
专家分:30
注 册:2009-11-23
结帖率:50%
已结贴  问题点数:20 回复次数:1 
关于全局变量,请教大家,谢谢
大家好,我有个问题请教,如下:

int **c;

void ini_can(int a[][9]){
     int i,j,k;
     for(i=0;i<9;i++){
     for(j=0;j<9;j++){
     if(a[i][j]==0){
     c[i*9+j]=(int *)malloc(sizeof(int)*9);
     for(k=0;k<9;k++)*(c[i*9+j]+k)=k+1;
     }
     else c[i*9+j]=(int *)malloc(sizeof(int)*9);
     }
     }
}
void main(){
...
}
大家不需要考虑这个函数是干什么的,我只是随便举个例子。
我声明了一个全局变量int **c,但是没有初始化,而且在主函数里也没有初始化,那么应该会出现:编译不会报错,但是运行一定会出错,因为没有初始化,对吧?
我的问题是:如果定义全局变量时没有初始化,而下面有函数要使用这个全局变量,是不是他先会看在主函数中是否有该全局变量的初始,如果也没有,那将运行出错,是这样么?谢谢。
搜索更多相关主题的帖子: 变量 全局 
2009-11-23 06:03
m456m654
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:3
帖 子:783
专家分:2806
注 册:2009-9-17
得分:20 
如果在程序中有对**c的赋值,那么应该会正确调用。如果一直没有给它赋值或初始化,直接调用的话,由于其地址指向不定,一般得到不可预料的数据,同时也是较为危险的一种做法。
2009-11-23 10:32



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-293033-1-1.html




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

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