C_and_CPP 板


LINE

http://ideone.com/UhNQlR 先附上原始程式码 这是某本书上的范例但是照打上去於DEv编译会出现错误 问题1 : 对於ptr = temp 的这行意义不是很了解 看字面上似乎想要让ptr指标指向temp指标存取的值(指向某字串的位址) 但temp并未初始,所以这个步骤对我来说有点诡异 问题2 : 我假设问题1的步骤可能是要这样写 ptr = &temp 那麽我想要让三个字串的起始位址连续存入三个记忆体位址中 於是我也写了跟范例一样的语法 *(ptr+0) = string1; *(ptr+1) = string2; *(ptr+2) = string3; 而我想要确认这三个位址是否真的连续接着 於是自行加上输出 for(n=0 ; n<3 ; n++) printf("第%d个字串的位址为%p\n",n+1,*(ptr+n)); 不过1跟2的位址是连续,但第三个位址直接跳去不知道哪个地方 很明显不连续 以至於我在加上输出列印时就产生错误 for(n=0 ; n<3 ; n++) printf("第%d个字串的字串为%s\n",n+1,*(ptr+n)); 想要知道问题的点在哪边 Orz ..毫无头绪 问题3 : 关於置底常见错误的12 别想对二维阵列使用pointer to pointer 想请问各位前辈时否有现成的案例可供小弟参考 最近也是有类似的想法正在练习不过好像没出现问题 怕我正在走上这条看似正确的误途上 初次在板上请教,烦请各位不吝指教 --



※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 59.126.35.91
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/C_and_CPP/M.1459748840.A.555.html ※ 编辑: mp8113f (59.126.35.91), 04/04/2016 13:49:44 ※ 编辑: mp8113f (59.126.35.91), 04/04/2016 13:51:39
1F:推 stupid0319: 看到char **ptr,建议你还是换本书好了 04/04 13:55
2F:推 kai5566: 一楼?为什麽? 04/04 15:40
3F:→ stupid0319: 有两颗*就会有三颗,四颗,没完没了啊,无法理解的用法 04/04 16:03
4F:→ kai5566: .............这是什麽理由 04/04 16:04
5F:→ mp8113f: 我也想知道为甚麽,还是char** ptr比较简洁明了呢 04/04 16:04
6F:→ mp8113f: 另外问题二我想了想,是不是因为直接对*ptr做加减不保险 04/04 16:05
7F:→ mp8113f: 因为不一定会有stack区块让他存? 所以有些人可过有些不 04/04 16:06
8F:→ stupid0319: 我常看MSDN,可是机乎都不会出现两颗**的指标 04/04 16:15
9F:→ stupid0319: 大部分都typedef成一个类型,这样比较清楚 04/04 16:16
10F:→ mp8113f: 那如果该宣告pointer to pointer,该怎麽写比较专业 04/04 16:17
11F:→ mp8113f: 了解我再研究这个方式看看,感谢 ! 04/04 16:17
12F:→ mp8113f: 不过问题二还是不太清楚....囧 04/04 16:18
13F:→ stupid0319: 应该对pointer定义成看的懂,易理解明确的名称 04/04 16:19
14F:→ stupid0319: 指标是新手的罩门呀,其实不用想太多,把指标看成变数 04/04 16:20
15F:推 Bencrie: 最多就两颗吧 04/04 16:21
16F:推 ko27tye: 到底为什麽会到三颗四颗 最多就两颗阿 04/04 21:12
17F:推 ko27tye: 然後char**是强调型别为char**的ptr变数 04/04 21:18
18F:→ ko27tye: char **ptr是char型别的双重指标 两个都可以 看你想法 04/04 21:19
19F:推 ko27tye: 然後问题二 你这样是把三个string变数记忆体位置扔给 04/04 21:27
20F:→ ko27tye: ptr存,连续的是你的ptr 但那三个本来就不一定会连续 04/04 21:28
21F:→ mp8113f: 我大致上懂了,所以若我要连续存,最好方法是 04/04 21:30
22F:→ mp8113f: 我设定一个temp指标矩阵确保连续对吧? 04/04 21:31
23F:推 ko27tye: 不用阿...你&ptr &(ptr+1) &(ptr+2)出来会连续没错 04/04 21:33
24F:→ mp8113f: 没事,我弄反了,string本身不连续所以这样做不太保险 04/04 21:34
25F:→ mp8113f: 感谢你的解说 ! 04/04 21:35
26F:→ mp8113f: 若要确保三个字串连续那应该开个矩阵存这三串了 04/04 21:37
27F:→ mp8113f: 就不能用分开的方式存入指标 04/04 21:37
28F:推 ko27tye: yes 04/04 21:37
29F:→ mp8113f: 了解,不过这题我编译没问题,但执行会意外错误, 04/04 21:49
30F:→ mp8113f: 只能再找找是不是哪边写错了 04/04 21:50
31F:推 ko27tye: 指标可以存三种东西 0、某个物件的记忆体、另一个指标 04/04 22:02
32F:→ ko27tye: 你那个temp没指东西,然後ptr又指向它 很容易出错的 04/04 22:03
33F:→ mp8113f: 感谢k大指点,回去马上debug 04/04 22:04
34F:推 Caesar08: 如果你只学C,两个*有存在必要,你不能这样就把书丢掉 04/04 22:27
35F:→ Caesar08: 但如果你用的是C++,那你就不会看到两个*了 04/04 22:28
36F:→ Caesar08: 总而言之,建议你学C++而不是C 04/04 22:30
37F:→ mp8113f: 好的,下一个阶段即是要准备学c + 04/04 22:56







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