求助:如何定义一个未知大小的数组指针?

fengbingchun
博客专家认证
2010-09-19 02:46:34
#include <iostream>
using namespace std;

void main()
{
int *p = NULL;//这里该如何写呢?

int a;
while ((cin>>a) != 0)
{
*p = a;
p++;
}

cout<<"end"<<endl;
}

我在定义一个数组指针前并不知道该分配多大的空间,只有在后面的语句中才能确定,我该如何做呢?
如果预先知道的话,可以这样做:
int *p = NULL;
p = new int[10];

.......

delete []p;

现在,该怎么做呢?
高手们,帮帮我,谢谢了!
...全文
570 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
liutengfeigo 2010-09-19
  • 打赏
  • 举报
回复
一样的,反正得重新转移。
果冻想 2010-09-19
  • 打赏
  • 举报
回复
用STL吧,这个很好!还有楼主,没事看看STL吧!
AIHANZI 2010-09-19
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 freezezdj 的回复:]
vector<>
deque<>
list<>
[/Quote]
UP,,觉得用STL方便
FengRider 2010-09-19
  • 打赏
  • 举报
回复

#include <iostream>
#include <vector>
using namespace std;

void main()
{
vector<int> p;
int a;
while ((cin>>a) != 0)
{
p.push_back(a);
}

cout<<"end"<<endl;
}

用乏型,这样不需要你自己考虑分配空间的问题
huhacn 2010-09-19
  • 打赏
  • 举报
回复
#include <iostream>
using namespace std;
这都用了
还是vector吧
cattycat 2010-09-19
  • 打赏
  • 举报
回复
vector很好用了。
十八道胡同 2010-09-19
  • 打赏
  • 举报
回复
后面根据你需要的大小 malloc就是了

或者你直接使用vector
xiaozhi5855 2010-09-19
  • 打赏
  • 举报
回复
可以new出来
tianxiao1101 2010-09-19
  • 打赏
  • 举报
回复
原定大小为10,后来根据输入,可增加大小。
tianxiao1101 2010-09-19
  • 打赏
  • 举报
回复
#include<iostream>
#include<malloc.h>
using namespace std;

void main()
{
int *p = NULL;
p=(int *)malloc(10*sizeof(int));
int a,b;
b=0;
while (cin>>a)
{
p[b]=a;

b++;
if(b>=10)
{
int *newbase;
newbase=(int *)realloc(p,(b+1)*sizeof(int));
p=newbase;
}
}
cout<<"end"<<endl;
//输出验证
for(int i=0;i<b;i++)
{
cout<<p[i]<<endl;
}

}
fengbingchun 2010-09-19
  • 打赏
  • 举报
回复
谢谢了,我先用vector试试
冻结 2010-09-19
  • 打赏
  • 举报
回复
vector<>
deque<>
list<>
qf17331733 2010-09-19
  • 打赏
  • 举报
回复
你可以使用CByteArray之类试下,增加数组可以用它的ADD属性~
Bizet 2010-09-19
  • 打赏
  • 举报
回复
或者用vector。。
Bizet 2010-09-19
  • 打赏
  • 举报
回复
先malloc n个
如果输入超过n个
remalloc

64,633

社区成员

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

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