作者Arim (Arim5566)
看板C_and_CPP
标题[问题] 动态配置的基本问题~
时间Fri Nov 20 21:56:41 2009
以下是我有问题的code
char *ptr=new char;
ptr[0]='a';
ptr[1]='b';
ptr[2]=NULL;
在这边想问一下
我第一行系统会分配一块可以放char资料的记忆体,使ptr指向它
可是为什麽我还可以用阵列的方式来储存呢
不是只有分配一块空间而已吗
如果要用阵列的方式表示,第一行应该要写char *ptr=new char[3];吧??
表示说分配三块空间,使ptr指向第一块空间吧??
这边观念可能有点模糊,请版友不吝指教 谢谢
--
~宅男的四个徵兆~
∠□ ○ ! * \○/ ★ (○ ?
╦╦└□ " ○□═ □ □>
║║√√ ╦══╦ ∥ |\
一回家就上PTT 每天想正妹 以当好人为乐 忘记正妹亏欠自己
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 220.139.200.202
1F:→ james732:你不能这麽做 程式不会挂掉只是运气好 11/20 22:07
2F:→ abilitylife:C++不会检查ptr指向的目标长度,如果会跑那只能说是 11/20 22:07
3F:推 twotwoone:你开始了解的指标的威力了吧 11/20 22:07
4F:→ abilitylife:原本要说的楼上说了XD 11/20 22:08
5F:→ james732:这是C的强大 也是很容易写错的地方 XD (Java就会抓了) 11/20 22:09
6F:→ Arim:所以正常写法应该要写第二种罗? 11/20 22:11
7F:→ james732:Yes 11/20 22:12
8F:推 twotwoone:去读作业系统有关记忆体保护的描述,就知道前因後果 11/20 22:12
9F:→ Knighter:资料结构有 11/21 10:45