社区
C语言
帖子详情
一点疑惑~
afgkidy
2008-06-01 09:25:04
extern int *array;
int main()
{
array[0] = 1;
return 0;
}
int array[5] = {0};
请详解为什么出错,谢谢!!!
...全文
177
14
打赏
收藏
一点疑惑~
extern int *array; int main() { array[0] = 1; return 0; } int array[5] = {0}; 请详解为什么出错,谢谢!!!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
14 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
afgkidy
2008-06-03
打赏
举报
回复
终于明白了,分享下,应该是编译器没有解决的问题:
因为指针占4 个字节,在编译的时候并且也找到了array 变量,所以,test1 中的array 认为地址就在test2 的array 处,且开始的4 个字节就是test1 中array 的值,而test2 中array 数组已经赋值为0,即开始的4 个字节全为0, 所以test1 中array 就是一个空指针,所以出错了。
afgkidy
2008-06-01
打赏
举报
回复
由于在test1 中声明了int 型的array 指针,而在test2 中定义array 不是一个指针,而是一个int 型数组,数组名也可以当指针使用,所以我认为test1 中指针arry 的值应该是test2 中数组的地址,即数组名“array”。所以main 函数中“array[0] = 1”,我认为是对数组进行操作,即让test2 中数组的第一个元素赋值为1 。
但是实际情况却不是上面我说的那样~请提示我上面哪里分析错了,谢谢!!!
大前置
2008-06-01
打赏
举报
回复
test2.cpp int array[5];是全局变量指针。= {0}相当于置为NULL
extern int *array; 就是调用全局变量指针了。*array 与array[5]是一样的.
array在test2.cpp原来就是为NULL的,在test1.cpp肯定要申请内存才能使用了
afgkidy
2008-06-01
打赏
举报
回复
书上说明是:test2 中array 数组5 个元素被初始化为0,进行连接后,test1 中的int 指针array 的值就是test2 中数组元素array[0] 的值,也就是“0”----空指针!所以自然导致错误。
我不明白的是“test1 中的int 指针array 的值就是test2 中数组元素array[0] 的值”这句话。
afgkidy
2008-06-01
打赏
举报
回复
补充说明:
//test1.cpp
extern int *array;
int main()
{
array[0] = 1;
return 0;
}
//test2.cpp
int array[5] = {0};
大前置
2008-06-01
打赏
举报
回复
没有申请内存空间
array = (int *)malloc(sizeof(int)*5);
zjw6861982
2008-06-01
打赏
举报
回复
[Quote=引用 3 楼 langhua0001 的回复:]
说明数组和指针不同
[/Quote]
GreenCircle
2008-06-01
打赏
举报
回复
没有动态分配内存吧
langhua0001
2008-06-01
打赏
举报
回复
说明数组和指针不同
afgkidy
2008-06-01
打赏
举报
回复
抢坐真快啊~
code-artist
2008-06-01
打赏
举报
回复
在我之前 你在摩天大楼的顶部
承影
2008-06-01
打赏
举报
回复
test1 中把array声明为指针,则array[0] = 1; 的过程是:先取得array中的值(这里为array[0]的值)0(test2中已经初始化为0), 然后加上偏移量0,得到元素的存储地址,为0(即NULL),所以对地址为零的区域赋值将导致错误。
CedarDiao
2008-06-01
打赏
举报
回复
没错的,我在VC6下通过了。。。
估计是你没有把两个文件一起连接
afgkidy
2008-06-01
打赏
举报
回复
怎么都没人呢,是不是躲余震去了?
Vue3.0新特性全面解读
可能有的同学会
疑惑
:是不是在vue3.0版本下,2.x的代码没法运行了 其实在vue3.0下,2.x的代码依旧可以运行,你可以选择将之前的代码改造为3.0的组合式api,也可以让他们共存,他们并不是互斥的,3.0提供了一些新的...
谈谈对Gentle Adaboost的
一点
理解~
之前看过一些关于Gentle Adaboost的文献,尤其是那几篇经典的文献,但是有几处当时一直没有彻底理解,比如说文献《Face Detection Based on MBLBP Representation》中的第3小节,我开始就比较糊涂,于是借着这篇文献的内容,把基于可度量特征与非可度量特征的Gentle Adaboost之间的区别和联系介绍一番,同样,这对于另外几种Adaboost也同样适用,希望对同样困惑的童鞋有所帮助。
xml文件生成与下载
写在前面: 最近要做一个新的功能,点击按钮,可以根据数据生成对应的xml文件并保存。下面记录一下在做的过程的一些
疑惑
与问题(我就是太笨了,一些很简单的知识都不知道,不过通过这次跟蛋蛋的交流,解决了我的很多
疑惑
~~~啊哈哈哈。。。) 思考(做的过程中的
疑惑
): 1.如何将实体类转成xml格式的文件? 经查阅资料,生成xml格式的文件有很多种方法,dom、jdom、...
flash游戏教程集锦~~制作游戏有
疑惑
的先来这里看看~~
http://www.flash8.net/bbs/dispbbs.asp?boardID=38&ID=183016&page=1--> flash游戏教程集锦~~制作游戏有
疑惑
的先来这里看看~~来到这里的人都是热爱游戏的。 flash游戏起点高、资料少,制作者要对动画、编程有全面的了解,而且往往被flash的各种限制所累。对于初学flash游戏的人,最痛苦的莫过于茫然而无从下手。最要命的是,连他
为什么总是差
一点
儿
阅读原文 差
一点
儿,就差
一点
儿。为什么总是差
一点
儿? 想必很多人有很多时候也有跟我一样的
疑惑
,为什么这个总是差了那么
一点
儿,就那么
一点
点,已经很接近了,可是我练习了那么久,为什么还是差那么
一点
点。这个问题久久的困扰着我。 那些「差
一点
儿时刻」 大学会跟室友一起去打打篮球,开始也就是瞎玩儿,然后发现自己好像天赋异禀,好像乔丹、科比、詹姆斯、奥尼尔附体。因为我发现我竟然每次出手投球...
C语言
69,373
社区成员
243,080
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章