注册 登录
编程论坛 C++教室

[求助]new 的问题

cpluslover 发布于 2007-04-25 20:28, 587 次点击
大家都知道,当你想要定义一个数组,但它的大小不确定的时候就
不能定义数组了

这个时候,可以用new来new一个空间
比如 int* a=new int[size]

但这个时候a还可以当数组用吗?
8 回复
#2
dlcdavid2007-04-25 21:04

可以

#3
I喜欢c2007-04-25 21:29
yes~`` why not?
#4
sqyang5212007-04-25 21:30
这个A其实就是一个动态存储的数组
#5
yuyunliuhen2007-04-25 21:39
当然可以咯,这样的话会动态的分配,不会造成空间浪费
#6
aipb20072007-04-25 22:27
你new的就是一个数组啊,不过是动态数组,呵呵!
#7
煲仔粥2007-04-26 00:43

a事实上是一个指针,不过现在可以当数组看

#8
cpluslover2007-04-26 12:14
谢谢大家,它现在能当数组用,可以用a[]访问

但是又有一个新的问题产生了
就是它的大小确定吗

比如说这样计算它的大小 int SIZE=sizeof(a)/sizeof(*a)

这样计算出来的这个SIZE==size吗?
如果等的话就跟数组有很多的相同功能了
#9
天使坠落的眼泪2007-04-26 14:07

int* i

出现这样指针的问题的时候,从右读起
它的意思是说,i是一个int 类型的指针
使用new划分的时候,实际上是给它划分出一个动态的空间,
之后推出的时候必须delete掉,
而如果是 int i[4]像这样的情况下呢,就是内存中一直有这么大的一个空间内占用,
一直从程序的开始到程序的退出,
所以一般使用动态的划分,除非是哪种一直会被使用到的数据才会被直接划分

它们其他的空间之类的都是一样的

1