Chinaunix首页 | 论坛 | 博客
  • 博客访问: 4263294
  • 博文数量: 1148
  • 博客积分: 25453
  • 博客等级: 上将
  • 技术积分: 11949
  • 用 户 组: 普通用户
  • 注册时间: 2010-05-06 21:14
文章分类

全部博文(1148)

文章存档

2012年(15)

2011年(1078)

2010年(58)

分类: C/C++

2011-04-18 22:32:31

                 动态分配内存与释放


  1. int *p = new int;  

  2. int *p = new int(10);   初始化int型 10

  3. int *p = new int[10];   数组10g个 int 型

  4. delete p;              删除一个 int型 数

  5. delete []p;            删除整个数组,可以写10,也可以不写



对内存的分配

1. new 和 delete 必须配对使用

2.new 一个数组时,不要初始化

3.delete 一个数组时,必须指明数组 通过“ []  ”

4.一个指针变量没有指向一个指定的内存空间时,不能操作指

   针变量



说明 上面的 4

      一个指针变量没有指向一个指定的内存空间时,不能操作
指针变量


  1. void main()
  2. {
  3.   char *p;               需要初始化
  4.   strcpy(p,"china");   有可能 重要数据的丢失
  5.   cout<<p<<endl;
  6. }

修改如下;初始化指向

  1. void main()
  2. {
  3.   char *p;
  4.   p = new char[10];    初始化指向
  5.   strcpy(p,"china");
  6.   cout<<p<<endl;
  7.  delete []p;  手工释放内存
  8. }

new 和 delete 配对使用

  1. void main()
  2. {
  3.   CStudent *pt;
  4.   pt =new CStudent("jim",21,'m');
  5.   pt->input(char * name[],int age,char ***);
  6.   delete pt;
  7. }























阅读(529) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~