#include<iostream>
using namespace std;
main() { int *p,i;
p=new int [10];
if(!p){ exit(1); }
for(i=0;i<10;i++)p[i]=i;
for(i=0;i<10;i++)cout<<p[i]<<endl;
delete [10] p;
return 0; }
红色字体的具体意思是什么呀?把我搞昏了
帮帮忙呀,我快要崩溃喇
#include<iostream>
using namespace std;
main() { int *p,i;
p=new int [10];
if(!p){ exit(1); }
for(i=0;i<10;i++)p[i]=i;
for(i=0;i<10;i++)cout<<p[i]<<endl;
delete [10] p;
return 0; }
红色字体的具体意思是什么呀?把我搞昏了
帮帮忙呀,我快要崩溃喇
为指针p在堆中申请十个整型空间!!!!
就是动态申请空间,void malloc()函数功能差不多!!!
[此贴子已经被作者于2004-08-06 09:49:25编辑过]
堆 是干什么用的?有什么特殊功能?
p=new int [10] 跟 我直接用 int p[10] 有什么区别?
还有p是一个整型指针,指向一个整型地址,他怎么能够跟十个整型空间搭在一起?
请各位大侠帮帮小弟
堆(heap)对象是指在程序运行过程中根据需要随时可以建立或删除的对象。堆对象被创建在内存中一些空闲的存储单元中,这些存储单元被称为堆。堆可以被创建的对象占有,也可以通过删除堆对象而获得释放。
创建或删除堆对象时,需要如下两个运算符:
new, delete
1. 运算符new的用法
该运算符的功能是用来创建堆对象,new运算符的使用格式如下:
new <类型说明符>(<初始值列表>)
它表明在堆中建立一个由<类型说明符>给定的类型的对象,并且由括号中的<初始值列表>给出被创建对象的初始值。如果省去括号和括号中的初始值,则被创建的对象选用默认值。
new运算符返回一个指针,指针类型将与new所分配对象相匹配,如果不匹配要通过强制类型转换,否则将编译出错。
如果new运算符不能分配到所需要的内存,它将返回0,这时的指针为空指针。
运算符new也可用来创建数组类型的对象,即对象数组,其格式如下:
new <类名>[<算术表达式>]
其中,<算术表达式>的值为所创建的对象数组的大小。例如:
A * ptr;
ptr = new A[5];
其中,A 为类名,ptr 是指向类A对象的一个指针。通过new A[5]创建一个对象数组,该数组有5个元素。它的返回值赋给指针ptr, 于是ptr 便是指向对象数组的指针。
使用new[]创建对象数组或一般数组时,不能为给数组指定初始值,其初始值为默认值。