C++里面想定义一个数组,但不知道具体大小,怎么办?
小的时候只有1,2个,大的时候可能好几十万。所以不要说一个很大的数。具体多少个每次也不一样……这样应该这么定义?定义完了怎么赋值?刚学C++没多久,求指导!详细点……谢谢...
小的时候只有1,2个,大的时候可能好几十万。所以不要说一个很大的数。
具体多少个每次也不一样……这样应该这么定义?
定义完了怎么赋值?
刚学C++没多久,求指导!详细点……谢谢…… 展开
具体多少个每次也不一样……这样应该这么定义?
定义完了怎么赋值?
刚学C++没多久,求指导!详细点……谢谢…… 展开
展开全部
可以先取值,后定义
int n;
cin>>n;
int *p=new int[n];
或者用vector容器,可以用push_back()函数动态增加元素的个数
#include<iostream>
#include<vector>
using namespace std;
/*
int main()
{
int i,n;
cin>>n;
int *p=new int[n];
for(i=0;i<n;i++)
cin>>p[i];
for(i=0;i<n;i++)
cout<<p[i]<<'\t';
cout<<endl;
return 0;
}
*/
int main()
{
vector<int> vec;
int t;
while(cin>>t)//回车之后 Ctrl+z 结束输入
vec.push_back(t);
unsigned i=0;
while(i<vec.size())
cout<<vec[i++]<<'\t';
cout<<endl;
return 0;
}
追问
这种方法是不是必须要用键盘输入一下确切多少个数?
我是读一个文件,读进来一个数存储一下,之前我也不知道有多少个数。
追答
vector容器可以实现你的要求呀,使用vector容器的时候,不需要定义容器大小,可以动态增加的
你把我给你的代码稍微改下就可以了
展开全部
在C/C++中有多个函数能够达到你所需的功能,最常的是malloc()函数和new 命令
如临时开辟一个10个单元的整数空间:
用malloc:
int *pint;
pint=(int *)malloc(sizeof(int)*10);
用new:
同上:
int *pint;
pint=new int[10];
用完后要及时删除(释放):
针对第一种方法:
free(pint);
针对第二种方法:
delete[]pint;
如临时开辟一个10个单元的整数空间:
用malloc:
int *pint;
pint=(int *)malloc(sizeof(int)*10);
用new:
同上:
int *pint;
pint=new int[10];
用完后要及时删除(释放):
针对第一种方法:
free(pint);
针对第二种方法:
delete[]pint;
追问
new命令是怎么用的啊?
这个不还是要确切的数字么?(你举得例子就是10个)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这种情况,只能通过动态malloc 一块内存空间来实现。
如, 现在需要申请一个int 型的数组, 大小为nNum;
int *intArray = (int *)malloc(nNum * sizeof(int));
然后可以像访问 数组一样访问intArray了。
如, 现在需要申请一个int 型的数组, 大小为nNum;
int *intArray = (int *)malloc(nNum * sizeof(int));
然后可以像访问 数组一样访问intArray了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询