作者NerVGear (Phantom)
看板Programming
标题[问题] 刚开始学C的新手遇到的问题
时间Wed Dec 23 11:40:10 2015
最近在学指标的时候遇到一些问题
先po程式码
int *p = 0, num[3][3];
srand(time(NULL));
for (p = &num[0][0]; p <= &num[3][3]; p++)
{
*p= rand()%10+1;
p++;
}
for (p = &num[0][0]; p <= &num[3][3]; p++)
{
printf("%d\n", *p);
p++;
}
主要是练习利用指标达成阵列的应用
将储存的随机数存到指标所指向的位置
在执行的时候遇到一些问题
1.为什麽整个回圈只跑了七次而不是九次?
2.当我把阵列改成4*4的时候会发生存取违规,请问这是为什麽呢?
3.为什麽我这样写指标的记忆体是位移8? 不是应该是4吗?
4.想顺便请教二维阵列的记忆体配置
谢谢解答Orz
--
作者 NerVGear (Phantom) 看板 Gossiping
标题 [问卦] 有没有记得最熟课文的八卦
时间 Thu Apr 9 17:16:15 2015
───────────────────────────────────────
1F:推 goldman0204: 孙中山看精子往上游?04/09 17:16
2F:→ goldman0204: 靠杯 打错 脑子是想小鱼逆游?打出精子= =04/09 17:17
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 140.121.43.242
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Programming/M.1450842015.A.AB0.html
3F:→ longlongint: p<=num[3][3]1.171.51.106 12/23 11:48
刚刚发现PO上来少打的& 谢谢提醒
原本是有&的XD
4F:→ jaid: 你for本身跟回圈内都p++ 这样一次就加两个了42.66.189.50 12/23 13:39
把p++去掉了 但是却出现违规存取 请问这是什麽问题呢?
※ 编辑: NerVGear (36.231.27.115), 12/23/2015 14:09:43
5F:→ CaptainH: num[3][3] 本身就是违规存取了140.112.31.65 12/23 15:19
6F:→ CaptainH: 改成 p <= & num[2][2]140.112.31.65 12/23 15:19
想请问为什麽是违规呢?
※ 编辑: NerVGear (36.231.27.115), 12/23/2015 15:35:18
7F:推 IKAFIRE: 因为index 3其实是第4个元素114.136.12.35 12/23 16:45
对齁 一直忘记这个Orz 谢谢
※ 编辑: NerVGear (223.136.61.4), 12/23/2015 17:46:36