C_and_CPP 板


LINE

问题(Question): 我想印出结构中的一个字串,可是却一直跑出??,非预期的答案 程式码(Code):(请善用置底文网页, 记得排版) typedef struct A{ char element[20]; struct QElement* next; }QElement; QElement* head = NULL; QElement* tail = NULL; int main() { char input[] ="ABC"; enq(input); } void enq(char data[]) { QElement* temp = (QElement*)malloc(sizeof(QElement)); temp->element[20] = data; temp->next = NULL; printf("Element: %s is enqueued\n", temp->element); free(temp); } 我预期的结果应该是%s的地方应该是ABC,可是显示的却是?? 请问我的观念错在哪,请前辈们告知一下 --



※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 27.247.164.135
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/C_and_CPP/M.1506518730.A.47B.html
1F:推 Killercat: %s错 大概90%是没\0 10%是operator没搞好 09/27 21:31
2F:→ Killercat: 你的话虽然是\0问题 但是有个更严重的错误 09/27 21:32
3F:→ Killercat: 你把element*指到&data(char[3])去了.... 09/27 21:33
4F:→ Killercat: 请用strcpy做这件事 不要乱指啊.... 09/27 21:34
5F:→ Killercat: (虽然strcpy也会错就是了 因为data没有\0) 09/27 21:34
6F:→ Killercat: 刚好四五年前有个实习生水平 放这种雷把系统炸飞了... 09/27 21:35
7F:→ SKTP: 请问element*指到&data(char[3])去了.... 是什麽意思? 09/27 21:35
8F:→ Killercat: element是char[20] data是char[3] 你把一个char[3]的 09/27 21:39
9F:→ Killercat: 位置送给了一个char[20]的位置 你觉得可以吗 XD 09/27 21:40
10F:→ Killercat: 另外你的问题只要把data改成const char* data = "ABC"; 09/27 21:40
11F:→ Killercat: \0 加上用strcpy去代替= 应该就没错了 09/27 21:41
12F:→ Killercat: 今天假设element跟data都是new来的 你觉得这样指来指去 09/27 21:41
13F:→ Killercat: 最後delete[] element会怎样? XD 09/27 21:41
14F:推 peterwu4: 矩阵不能用=给,但是结构可以,所以结构里面有矩阵可以 09/27 23:21
15F:→ peterwu4: =的过去吗?XD 09/27 23:21
想另外请教一个问题是如果我想要让自动填入的字串从"A1"变成"A2"然後填"A3", 这样要怎麽写,感觉很简单可是我想破头也不知道怎麽做 ※ 编辑: SKTP (27.247.164.135), 09/28/2017 02:00:54
16F:推 IhateOGC: strncpy + strcat 0 09/28 06:25
17F:→ jimfan: temp->element[20] = data; 不能达到你的预期 09/28 07:06
18F:→ jimfan: 建议研习一下字串的复制方法,例如strcpy、strncpy 09/28 07:08
19F:→ jimfan: 而且留意,enq()中,temp->element[20]系一段记忆体内容, 09/28 07:19
20F:→ jimfan: C的=运算子除了基本资料类型外,不能直接复制一段记忆内容 09/28 07:22
21F:推 Killercat: 结构里面的矩阵要自己实作copy/assign ctor来决定做法 09/28 07:45
22F:推 dou0228: 我到底看了什麽?string copy 不是用 [20] = data 09/28 09:02
23F:→ dou0228: 再者,element[20] 最大只能存取到 element[19] 09/28 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灯, 水草

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

TOP