请各位C++高手帮我看一下这道简单的C++填空题
请对填空处解释一下谢谢了!//2、下列程序的功能是:从堆中获取一个整数数组,赋值并打印。#include<iostream.h>#include<alloc.h>void...
请对填空处解释一下谢谢了!
//2、下列程序的功能是:从堆中获取一个整数数组,赋值并打印。
#include <iostream.h>
#include <alloc.h>
void main()
{
int arraysize; //定义元素个数
int * array;
cout<<"please input a number of array:"<<endl;
cin>>arraysize;
if(array= 在此填空 )==Null) //请对这里解释一下
{
cout<<"Can't allocate more memory!"<<endl;
exit(1);
}
for(int count=0;count<arraysize;count++)
array[count]=count*2;
for(int count=0;count<arraysize;count++)
cout<<array[count]<<" ";
cout<<endl;
( 在此填空 ) ;
} 展开
//2、下列程序的功能是:从堆中获取一个整数数组,赋值并打印。
#include <iostream.h>
#include <alloc.h>
void main()
{
int arraysize; //定义元素个数
int * array;
cout<<"please input a number of array:"<<endl;
cin>>arraysize;
if(array= 在此填空 )==Null) //请对这里解释一下
{
cout<<"Can't allocate more memory!"<<endl;
exit(1);
}
for(int count=0;count<arraysize;count++)
array[count]=count*2;
for(int count=0;count<arraysize;count++)
cout<<array[count]<<" ";
cout<<endl;
( 在此填空 ) ;
} 展开
2个回答
展开全部
第一个:if(array= new(arraysize*int) )==Null) //此句的目的是在内存中动态的申请空间,确切地说,是在堆内存中申请空间,在C++中动态申请内存是用new关键字的,而在C语言中这儿就应该是if(array= malloc(arraysize*int) )==Null),同样是在堆内存中;如果分配内存不成功,比如说当前没有足够的内存空间,系统就不给它分配,也就是空内存Null;
第二个空,delete(array);//此句的功能是释放动态分配的内存空间,C++中的动态内存空间是完全靠程序员来申请和释放的,而如果在Java中,这条语句也就没有必要可,因为Java中系统会自动地定时检查当前有没有不用的堆内存并且释放
所以,第一个空是申请内存,第二个空是释放内存.
第二个空,delete(array);//此句的功能是释放动态分配的内存空间,C++中的动态内存空间是完全靠程序员来申请和释放的,而如果在Java中,这条语句也就没有必要可,因为Java中系统会自动地定时检查当前有没有不用的堆内存并且释放
所以,第一个空是申请内存,第二个空是释放内存.
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询