c++动态内存分配一维数组

c++里建立数组的时候由于数组大小不确定所以打算用动态内存用new/delete时候定一的初始值是什么意思啊另外我无法确定数组大小应该怎么写这个数组的动态内存呀... c++里建立数组的时候 由于数组大小不确定 所以打算用动态内存 用new/delete时候定一的初始值是什么意思啊 另外 我无法确定数组大小 应该怎么写这个数组的动态内存呀 展开
 我来答
C小灿
2019-04-20 · 知道合伙人软件行家
C小灿
知道合伙人软件行家
采纳数:7 获赞数:19
大学生“挑战杯”省级特等奖;国家励志奖学金;校一等奖奖学金;

向TA提问 私信TA
展开全部

之所以要用到动态内存分配,是你一开始不知道要分配多大的内存空间,但最后要分配的时候一定是知道要分配多大的空间的,否则如果到最后要用到这个存储空间也就是你这里指的数组的时候,你都不知道要有多大的空间,那么动态分配内存也就没什么意义,还不如一开始就定一个足够大的数组。

这里举一个动态内存分配的简单应用例子,比如你是个酒店管理员,负责对接旅行团的入住管理,旅行团的人数都不一样,但最后真的有旅行团来的时候就会报出人数,这时候你就知道要分配多少个房间给他们,然后你要把这个旅行团的房间号记下来,这时候就可以用动态分配了,简单示例程序如下:

/*
*功能说明,录入房间号,输入第几个人(简单点模拟人名),查询房间号
*/
#include <iostream>
#include <stdlib.h>
using namespace std;
#define MAX_HUMAN_COUNT 100 //最大可入住人数
int main()
{
int human_num = 0;//实际入住人数
int room_num = 0;//房间号
/*键盘获取人数*/
cout << "please input the num of people:";
cin >> human_num;
/*人数超乎范围退出*/
if(human_num <= 0  || human_num > MAX_HUMAN_COUNT)
{
cout << "invalid num !" << endl;
exit(0);
}
else
{
/*根据人数动态分配房间数,存储房间号*/
int *room = new int[human_num];
for(int i=0;i<human_num;i++)
{
cout << "please input the room num:" ;
cin >> room[i];
}
/*输入第几个人,查询房间号*/
cout << "you can get the room num by input the index:1~" << human_num << ":";
cin >> room_num;
cout << "the room num of index " << room_num << " is " << room[human_num-1] << endl;
delete[] room;//最后注意一定要回收动态分配的内存
}

return 0;
}
HLHCHLXH
2019-04-25 · TA获得超过565个赞
知道小有建树答主
回答量:448
采纳率:0%
帮助的人:430万
展开全部

你的两个疑问:

1、分配内存大小如何确定

2、动态分配内存后初始值是啥东西

给你一个简单的解决方案例子:

1、定义一个函数,两个参数,参数1(指向内存的指针),参数2(内存的大小)

2、为你分配的内存做初始化消除不确定性

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
帅的人正在使用
2019-04-20
知道答主
回答量:25
采纳率:33%
帮助的人:9.9万
展开全部
首先引入头文件include<vector>
然后创建动态数组 vector<int> vec ;
写入数据 vec.push_back(....)
拿到数据 可以通过循环编辑 vec[i]
也可以每次拿到头第一个 vec.front()

欢迎追问,望采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
人人顺风顺水
2019-04-19 · TA获得超过164个赞
知道小有建树答主
回答量:315
采纳率:77%
帮助的人:114万
展开全部
晕,如果什么都搞不定就学一学用vector
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式