动态数组

EvilGene 2009-04-29 07:28:20

int *a=new int[10]; //[10]里面的10是什么意思?





vector 这个可以弄不知道成员数的数组吗? 具体怎么用?
...全文
139 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
tonforce 2009-04-30
  • 打赏
  • 举报
回复
路过学习
Sou2012 2009-04-29
  • 打赏
  • 举报
回复
路过。。
adventurelw 2009-04-29
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 EvilGene 的回复:]
引用 3 楼 adventurelw 的回复:
10的意思是本次动态分配的内存容量为10*sizeof(int),也就是10个整型元素,其中a是指向第一个所在地址的指针,下标操作时,也是数组名。

vector必须要知道成员类型,但成员个数无所谓,可以为空,也可以为变量n
初始化:vector <type> val(n);
当然,使用之前,仍然必须对n有一个明确的值来初始化才行。



C/C++ codevoidaa (int*a=newint[1])
{
a[0]=500000000;
a[2]=500005;
a[100]…
[/Quote]

刚刚吓了一跳,编译是能够通过,但很遗憾,运行是不可能的,因为这种越界编译没法检查,运行时才能发现错误
另外,new([]) 一定要有delete([])来配对。
zbihong 2009-04-29
  • 打赏
  • 举报
回复
路过!!
lpf000 2009-04-29
  • 打赏
  • 举报
回复
[Quote=引用楼主 EvilGene 的帖子:]
C/C++ code
int *a=new int[10]; //[10]里面的10是什么意思?







vector 这个可以弄不知道成员数的数组吗? 具体怎么用?
[/Quote]
vector 本身就一个数组
EvilGene 2009-04-29
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 adventurelw 的回复:]
10的意思是本次动态分配的内存容量为10*sizeof(int),也就是10个整型元素,其中a是指向第一个所在地址的指针,下标操作时,也是数组名。

vector必须要知道成员类型,但成员个数无所谓,可以为空,也可以为变量n
初始化:vector <type> val(n);
当然,使用之前,仍然必须对n有一个明确的值来初始化才行。
[/Quote]



void aa (int *a= new int[1])
{
a[0]=500000000;
a[2]=500005;
a[100]=1000;
a[1000]=10000;

}

int main(){
int *w= new int[1];
int d;
aa(w);
cout<<w[0]<<w[100]<<w[1000];
cin>>d;
}

还是不能理解 这段代码运行没出错
1*sizeof(int) 才2字节 存不下这么多吧
lingyin55 2009-04-29
  • 打赏
  • 举报
回复
int *a=new int[10]; //[10]里面的10是什么意思?

10代表动态定义的数组的长度


vector 这个可以弄不知道成员数的数组吗? 具体怎么用?

vector<int> test;//建立一个vector
test.pushback(1);//把1和2压入vector 这样test[0]就是1,test[1]就是2
test.pushback(2);


liliangbao 2009-04-29
  • 打赏
  • 举报
回复
vector <数据类型> 变量;
变量.push_back(值);
就可以插入你需要的数据,大小不用考虑~
adventurelw 2009-04-29
  • 打赏
  • 举报
回复
10的意思是本次动态分配的内存容量为10*sizeof(int),也就是10个整型元素,其中a是指向第一个所在地址的指针,下标操作时,也是数组名。

vector必须要知道成员类型,但成员个数无所谓,可以为空,也可以为变量n
初始化:vector<type> val(n);
当然,使用之前,仍然必须对n有一个明确的值来初始化才行。
liliangbao 2009-04-29
  • 打赏
  • 举报
回复
int *a=new int[10]; //[10]里面的10是什么意思?
数组的大小,即动态分配10个int型数据空间~
airtrack 2009-04-29
  • 打赏
  • 举报
回复
10代表开辟的空间数量。
vector<int> ivec;
ivec.push_back(1);
插入数据就用push_back就行了。
具体可以看MSDN。

65,211

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧