C_and_CPP 板


LINE

开发平台(Platform): (Ex: Win10, Linux, ...) LINUX 编译器(Ex: GCC, clang, VC++...)+目标环境(跟开发平台不同的话需列出) GCC 问题(Question): 宣告一个struct typedef struct { uint8_t var_a; uint8_t var_b; } test_entry_t; 宣告一个指标 test_entry_t *p_entry 宣告一个function function testF(test_entry_t *p_entry){ uint8_t var1 = 0x01 uint8_t var2 = 0x02 p_entry->var_a = var1 p_entry->var_b = var2 } 我尝试用以下方是来call此function int main(){ test_entry_t *p_entry testF(&p_entry); printf("0x%02X\n", p_entry->var_a); printf("0x%02X\n", p_entry->var_b); 预计输出结果 0x01 0x02 但是我印出来却是空的! 想请问各位大大我这段code哪里写错了! 感谢 --



※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 1.164.192.107
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/C_and_CPP/M.1480677124.A.B8D.html ※ 编辑: blueguan (1.164.192.107), 12/02/2016 19:13:00 ※ 编辑: blueguan (1.164.192.107), 12/02/2016 19:13:38
1F:推 LPH66: 你想要让 testF 填入 p_entry 指向的东西, 那在传进 testF 12/02 19:13
2F:→ LPH66: 时就必须要给一个实际上指向那个 struct 的指标 12/02 19:13
3F:→ LPH66: 你这样写变成传入一个指向指标的指标, 所以就会有问题 12/02 19:14
4F:→ LPH66: 正确的做法是 test_entry_t entry; testF(&entry); 12/02 19:14
5F:→ LPH66: 或者如果你的 struct 是 malloc 来的话: 12/02 19:14
6F:→ LPH66: test_entry_t *p_entry = (test_entry_t)malloc(...); 12/02 19:15
7F:→ LPH66: testF(p_entry); 这样子 12/02 19:15
8F:→ LPH66: 啊, 上上行少一个 *, 总之意思应该到了 12/02 19:16
9F:→ blueguan: test_entry_t **p_entry = (test_entry_t)malloc(...); 12/02 19:17
10F:→ blueguan: 这样吗? 12/02 19:17
11F:推 LPH66: 是转型少了 *... 12/02 19:18
12F:→ blueguan: est_entry_t *p_entry = (test_entry_t *)malloc(...); 12/02 19:25
13F:→ blueguan: 这样吗? 12/02 19:26
14F:→ blueguan: 我改完好像~还是没有把值塞进去 12/02 19:38
15F:→ pttworld: 预期输出的正确结果: 12/02 19:40
※ 编辑: blueguan (1.164.192.107), 12/02/2016 19:46:48
16F:→ blueguan: 我加入预期输出结果了... 12/02 19:47
17F:推 james732: http://ideone.com/OJNIuQ 这样 12/02 19:54
18F:→ blueguan: 感谢各位大大~~已经可以了!!!! 各位太威了.. 12/02 20:07
19F:→ blueguan: 所以我必须要宣告给空间才可以 12/02 20:07







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灯, 水草

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

TOP