Grad-ProbAsk 板


LINE

https://i.imgur.com/s2nI9eU.jpg 怎麽想都感觉怪怪的 为什麽会是用减的 ? 是因为用malloc配置的空间是stack吗? ----- Sent from JPTT on my iPhone --



※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 110.26.161.96
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Grad-ProbAsk/M.1544605335.A.904.html
1F:推 eggy1018: Malloc Pointer放在Stack , pointer 指向的data 放在hea 12/12 18:08
2F:→ eggy1018: p 12/12 18:08
3F:→ eggy1018: 如果有错还请大大指教 12/12 18:08
4F:推 alan23273850: 地址由上往下递增,stack往下长,heap往上长,这样 12/12 20:35
5F:→ alan23273850: 你就懂了,倒是为什麽 64-bit CPU 的整数是 8 bytes 12/12 20:35
6F:→ alan23273850: 这我还不懂,我以为整数最长就只到 32 bits。 12/12 20:36
7F:推 eggy1018: 64bit=8byte 因为byte address, 所以是+-8 12/12 22:25
8F:推 Dora5566: 蛋大应该是对的 12/12 22:55
9F:推 alan23273850: 我刚刚在WSL上印sizeof(int)明明是4,到底为什麽是8 12/12 23:38
10F:→ alan23273850: 是64bit的电脑喔 12/12 23:39
11F:→ alan23273850: 大家要不要把自己sizeof(int)的结果截图PO上来参考 12/12 23:41
12F:推 b0920075: int在32 64下都是4byte啊 12/12 23:44
13F:→ b0920075: 但是在64下地址所占空间是8byte,跟int所占空间根本无 12/12 23:45
14F:→ b0920075: 关 12/12 23:45
15F:推 b0920075: 这题应该只是考stack生长方向和 64bit下地址所占空间而 12/12 23:49
16F:→ b0920075: 已 12/12 23:49
17F:→ o5739201: 谢谢各位大大 懂了 12/12 23:53
18F:推 alan23273850: 我还不懂,https://i.imgur.com/9YkO4kh.jpg 12/13 00:33
19F:→ alan23273850: 明明就是 +8,虽然我承认有被 &p 骗到 12/13 00:34
20F:→ alan23273850: 而且p和q都是区域变数放在stack,stack往下长,地址 12/13 00:36
21F:→ alan23273850: 愈往下愈大,这样不是本来就是 +8 吗 12/13 00:36
22F:→ alan23273850: 我在不被 &p 骗到的情况下还是答错 12/13 00:37
23F:推 eggy1018: https://imgur.com/0USdfWf 12/13 00:58
24F:→ eggy1018: https://imgur.com/OF7yZRh 12/13 00:58
25F:→ eggy1018: 抱歉我也不是很理解为什麽你的address会如此,还有待高 12/13 00:59
26F:推 eggy1018: 手回答了 12/13 01:00
27F:→ alan23273850: 这题真是太好玩了,那蛋大对+8还是-8有理论解释吗? 12/13 01:18
28F:推 eggy1018: 抱歉我的+-8的意思只是移动8没特别的意思,造成误会的 12/13 01:45
29F:→ eggy1018: 话很对不起 12/13 01:45
30F:→ DLHZ: 几byte不是看compiler? 12/13 02:00
31F:→ aggress5566: sizeof(int)是4byte sizeof(size_t)才会跑出8 12/13 03:47
32F:→ aggress5566: 所以pointer type应该是size_t才是 12/13 04:01
33F:推 Dora5566: 是说64bits下存一个int变数花8byte里面却只有4byte的资 12/13 07:06
34F:→ Dora5566: 料,是这样吗 12/13 07:06
35F:推 alan23273850: DLHZ: 看平台定义常数 12/13 08:14
36F:→ alan23273850: Dora: 被误导了,这题问的是指标大小,非普通变数 12/13 08:16
37F:→ alan23273850: 大小,请看清楚,所以我才说这题监别度低 12/13 08:16
38F:推 Dora5566: 我确实是想问int在64bit时怎麽放的 XDD 12/13 08:36
39F:推 alan23273850: 上面有人说过了,sizeof(int) 还是 4 12/13 08:39
40F:推 Dora5566: 但64bits不是用8byte对齐吗 12/13 08:44
41F:推 Dora5566: 啊…我知道了 12/13 08:50
42F:推 alan23273850: 剩下就是加减的问题了,这题拿去申复搞不好会送分 12/13 09:31
43F:→ o5739201: 所以是用加的吗?stack往下长 下面不是位置比较低吗? 12/13 10:12
44F:→ o5739201: 我用dev-c去试 是用减的没错 12/13 10:23
45F:→ o5739201: Compiler 是 TDM-GCC 4.9.2 64bit 12/13 10:23
46F:→ aggress5566: 这个问题就是 如果是4 byte 要怎麽表示 64 bit addr 12/13 12:43
47F:推 b0920075: stack是往下长,但local变数摆放顺序C语言规格书没有强 12/13 13:30
48F:→ b0920075: 制规定,很多compiler会为了安全考量,更改变数摆放位置 12/13 13:32
49F:推 alan23273850: 这题根本就有问题,可以把解答全部贴出来吗 12/13 13:32
50F:推 b0920075: 喔,还有可能因为空间利用上的关系改变变数顺序 12/13 13:34
51F:推 b0920075: 然後stack地址越往下越小,这os应该有教吧 12/13 13:46
52F:→ alan23273850: 可恶,刚查了还真的是愈下面愈小,感谢楼上,受教了 12/13 14:12
53F:→ alan23273850: 这样的话如果按照预设行为的话答案应该就没错了 12/13 14:13
54F:推 eggy1018: 感谢b大a大的讨论 小弟受教了 12/13 14:30
55F:→ o5739201: 答案就只有写这样哦 已经是全部了 12/13 17:12
56F:推 jjuussttiinn: https://i.imgur.com/r9Wzkb8.jpg 12/13 18:50
57F:→ jjuussttiinn: 我找到的解答是加的欸 12/13 18:51
58F:推 alan23273850: 到底是官方还是非官方的 12/14 13:33
59F:推 ss850423tw: 题目是不是只是问 printf(“%x\n”,&p)这行的addre 12/14 23:33
60F:→ ss850423tw: ss和下一行的address的关系,并不是问p q指标的位置 12/14 23:33
61F:→ ss850423tw: 关系啊 12/14 23:33
62F:推 ss850423tw: 喔喔抱歉 没看清楚是说那行的 output所以应该是指标 12/14 23:42
63F:→ ss850423tw: 存heap然後heap往上长所以是+8没错吧 12/14 23:42
64F:推 b0920075: &p &q都是stack地址,跟heap无关,如果要看heap地址应 12/15 09:12
65F:→ b0920075: 该要看p q 12/15 09:12
66F:→ ss850423tw: 喔呜了解了谢谢b大 12/15 11:56
67F:推 kobebset105: 回覆alan大大 你的位址第一个是f所以是负数 12/15 14:56
68F:→ kobebset105: 所以这题是减没有错喔 12/15 14:57
69F:推 alan23273850: kobe大大按照你说的,那答案位址b开头代表sign bit= 12/15 16:58
70F:→ alan23273850: 1,那也是负的,这样选项就错了对ㄅ 12/15 16:58
71F:→ alan23273850: 包括蛋大的截图也是,e开头也是负的,可是他却是减 12/15 16:59
72F:嘘 aggress5566: 到底在说什麽 Memory Address 什麽时候有负的这种 12/15 20:20







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

请输入看板名称,例如:e-shopping站内搜寻

TOP