C_and_CPP 板


LINE

开发平台(Platform): Win7 编译器: GCC 额外使用到的函数库(Library Used): No 问题(Question): int **arr = (int**)malloc(c*sizeof(int)) 程式码(Code):https://ideone.com/e.js/kHRJmp 第八行(int **arr)做完小弟的理解是像这样: https://imgur.com/a/d6kJniE 其中ABC因为还没有给值,所以用变数表示。 当执行arr = (int**)malloc(c*sizeof(int*)) malloc所给予的是一个ptr,这个ptr是指向**int,所以这个ptr的value就会取代A所以图就变成这样(图二): https://imgur.com/a/d6kJniE 问题: 1. malloc最後所allocate的大小是3*4bytes = 12bytes,但在我画的图中,B的size只有 4bytes,要如何放得下12bytes? 谢谢 --



※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 60.248.26.157
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/C_and_CPP/M.1527227184.A.D85.html ※ 编辑: zzss2003 (60.248.26.157), 05/25/2018 14:05:34 ※ 编辑: zzss2003 (60.248.26.157), 05/25/2018 15:11:29 ※ 编辑: zzss2003 (60.248.26.157), 05/25/2018 15:17:09
1F:推 jerryh001: 你程式码没贴到 05/25 15:32
※ 编辑: zzss2003 (60.248.26.157), 05/25/2018 16:01:47 ※ 编辑: zzss2003 (60.248.26.157), 05/25/2018 16:02:23 ※ 编辑: zzss2003 (60.248.26.157), 05/25/2018 16:03:01
2F:推 cphe: 看不太懂你的问题… 然後你的图只画出一个其中两个pointer 05/25 16:12
3F:→ cphe: 但你的code不是长这样阿~ 当然会跟你认知要allocate不一样 05/25 16:12
已更新内文,希望可以更明了,谢谢 ※ 编辑: zzss2003 (60.248.26.157), 05/25/2018 16:39:03
4F:→ elements: B的值是什麽意思? 05/25 16:40
5F:→ elements: 第八行跑完 就要一串阵列有c个int*大小的元素 这个阵列 05/25 16:42
6F:→ elements: 本身的位址会被放进你的变数 05/25 16:42
不好意思,已改内文,第8行只有执行int **arr ※ 编辑: zzss2003 (60.248.26.157), 05/25/2018 16:45:32 ※ 编辑: zzss2003 (60.248.26.157), 05/25/2018 16:46:23
7F:→ elements: 那第八行没有你想的那麽复杂 他就是一个指标大小的数值 05/25 16:48
8F:→ elements: 内容是乱数 型态是 int**,他指到的地方没有意义,要 05/25 16:48
9F:→ elements: 等到下一行 malloc 才会给他有用的值 05/25 16:48
恩恩,这个我能了解,我的问题是卡在为什麽中间会多3个空间,因为照理说只有1个空间 ※ 编辑: zzss2003 (60.248.26.157), 05/25/2018 17:13:31
10F:推 wei115: 第10行和11行 不是给了每一个arr[i] 一个c * sizeof(int) 05/25 17:27
11F:→ wei115: 的记忆体空间了吗?那为什麽B的大小会是4byte? 05/25 17:28
12F:→ wei115: B的大小应该要是 c*sizeof(int) 阿 05/25 17:28
13F:→ wei115: arr指向了3个(int *)大小的空间,每一个(int *) 指向4个 05/25 17:30
14F:→ wei115: (int)大小的空间 所以3 * 4 = 12个(int)大小的空间 05/25 17:30
15F:→ taies: B是个int* 那sizeof(B)=sizeof(int*)也是很正常的吧 05/26 01:20
16F:→ taies: sizeof(arr)=sizeof(int**)这情况应该也是4Byte 05/26 01:23
17F:→ taies: 不过指标大小看平台而定就是了 05/26 01:23







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

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

TOP