跪求c++高手:c++中指针访问动态内存用什么用呀??

最好能举个例子,谢了!... 最好能举个例子,谢了! 展开
 我来答
飘渺世间天
2007-02-12 · TA获得超过2650个赞
知道大有可为答主
回答量:843
采纳率:0%
帮助的人:1100万
展开全部
使用new操作符进行动态内存分配。

比如int *a = new int则a指向一块由动态分配而来的内存,使用完毕后要将其删除以释放空间,否则可能造成内存泄露。释放句法delete a。

如果是动态数组的话这样写int *a = new int[10],这样就创建了一个包含10个int元素的数组a,删除动态数组时要用delete [] a;否则只会把该数组的首个元素所占用的内存给释放了,以至造成内存泄露。

你还可以用布局new操作符将你希望创建的动态变量放在指定的buffer上,如:
int *p;
char buffer[20];
p = new (buffer) int;// 或int[5]
由于buffer指定的内存是静态内存而非堆栈,所以布局new操作不需要使用delete来释放空间。

对于类的动态内存分配你可以重载new和delete以让他们根据类的特性来动态分配和释放类的动态对象所使用的内存空间。
newghost_joe
2007-02-12 · TA获得超过791个赞
知道小有建树答主
回答量:1915
采纳率:0%
帮助的人:1127万
展开全部
用于设计时无法确定使用内存空间大小的东西。

比如保存一个用户自定义的字符串,字符串长度不是能在设计时就确定的。
遇到这样的情况必须使用动态分配内存,而动态分配的内存只能使用指针来调用。
例子:
第一个用户输入的字符串有10个字节,第二个用户输入有1000个字节,第三个用户输入有1000000000个字节,你设计的时候怎么知道他们要输入多少?只能用动态分配了....(除非你限定用户只能输入10个,否则....)
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式