Chinaunix首页 | 论坛 | 博客
  • 博客访问: 339519
  • 博文数量: 88
  • 博客积分: 1695
  • 博客等级: 上尉
  • 技术积分: 1380
  • 用 户 组: 普通用户
  • 注册时间: 2009-08-06 15:48
个人简介

喜欢美食, 旅行..

文章分类

全部博文(88)

文章存档

2014年(2)

2013年(12)

2012年(14)

2010年(8)

2009年(52)

我的朋友

分类: C/C++

2009-12-09 13:18:17

以指针作为参数,在子函数中动态分配内存

提出问题:
    在写程序时,有时候会用到在主程序中只定义一个指针变量,而在子程序中创建一个这个变量指向的动态数组,并且赋值。这种情况下只要保证实参和形参指向同一个地址就可以了。
例程:
  主程序:

主程序:
Main()
{
  Char 
* pCh;
  creatDynArray( 
&pCh);

}
子程序:
Void creatDynArray(char 
** inputPointer)
{
  
*inputPointer = new char[10];
 
//动态生成接受字符串
  For(int i 
= 0 ;i<10;i++)
  {
    
*inputPointer[i]='a';
  }
}

而下一种方式是不可以的:

反例如下:

主程序:
Main()
{
  Char 
* pCh;
  creatDynArray(pCh);

}

子程序:
Void creatDynArray(char 
* inputPointer)
{
   inputPointer 
= new char[10];
   
//动态生成接受字符串
   For(int i 
= 0 ;i<10;i++)
   {
    inputPointer[i]
=’a’;
   }
}

因为这种方式中,实参pCh和形参inputPointer所指向的地址不同,所以实参并不指向以形参开辟的动态空间.

文章出自:http://www.cnblogs.com/qqingmu/archive/2007/09/19/898125.html

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