C_and_CPP 板


LINE

自问自答一下 原文问题叙述不够清楚, 後来也确认发生原因了 简单的说, 就是两个全域变数写到一样的记忆体位置. 以下是简略的code. File A: struct vertexData { int index; GLKVector3 vertex; }; typedef struct vertexData TopoVertex; TopoVertex verWor[] = {}; // global variable TopoVertex verticesWor[] = {}; TopoVertex verBBObj[] = {}; ... for ... for ... verWor[i].vertex = GLKVector3Make =========================================== File B: struct usb_dev_handle *_devh = NULL; // global variable struct usb_dev_handle { int fd; struct usb_bus *bus; struct usb_device *device; int config; int interface; int altsetting; void *impl_info; }; ============================================ A是主程式里面的程式, B是引用到的其中一只Library. 没记错的话, verWor记忆体位置会跟_dev指标自身位置相同(不是指标存放的位置) 目前查到的资料, global与static变数, 都会放在data segment区段(https://en.wikipedia.org/wiki/Data_segment) 但不太懂为什麽每次执行程式, 两个全域变数记忆体的起始位置会相同. 有用gcc写程式测试, 并不会相同. 但是Xcode compiler是用LLVM, 那边还不太熟 最後还有发现一件事, 阵列不指定size和预设值这种用法, 应该是C语法没错 在GCC与LLVM compiler没问题, 但是在MSVC没办法编译 解法是全部拉到区域变数和Obj-C 类别变数里面, 因为根本不需要用全域变数 如果有什麽地方有误解, 还请各位大大见谅与指教!!! 谢谢~ --



※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 58.114.208.174
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/C_and_CPP/M.1475512465.A.02E.html
1F:推 jack191919: 推 10/04 01:30
2F:推 CoNsTaR: 是不是因为你 = {} 代表你的阵列长度为 0 10/04 04:12
3F:→ CoNsTaR: 一种方法是固定阵列大小 10/04 04:13
4F:→ CoNsTaR: 一种方法是用变数当阵列大小,不过就不能 global 10/04 04:14
5F:→ CoNsTaR: 还有一种是不指定阵列大小,用初始化列表决定,你的是这 10/04 04:15
6F:→ CoNsTaR: 种 10/04 04:15
7F:→ CoNsTaR: 还有一个办法是用指标动态配置 10/04 04:15
8F:→ hsm926: 原本写法,A档里面那三个全域变数记忆体位址都差4,好像类 10/04 09:00
9F:→ hsm926: 似指标用法,但是没做记忆体配置的动作,就直接使用了 10/04 09:00
10F:→ hsm926: 我试过固定阵列大小,记忆体起始位置的确不同,但是没有差 10/04 09:03
11F:→ hsm926: 很远,为了保险起见还是改成区域变数,感谢您的回答XD 10/04 09:03







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:Soft_Job站内搜寻

TOP