动态内存可跨函数使用

 1 # include <stdio.h>
 2 
 3  void f( int **q)
 4 {
 5      int i = 5;
 6              // *q = i;errro 因为*q = i;等价于 p = i;这样写是错的。
 7       // *q等价于p,q和**q都不等于p
 8 
 9      *q = &i;   // p = &i;
10  }
11 
12  int main()
13 {
14      int *p;
15 
16     f(&p);
17     printf( " *p = %d\n ",*p); // 本语句语法上没有问题,但逻辑上有问题。想想!!能运行,编译器有问题
18                         //
19 
20      return  0;
21 
22 }
23  /*
24  在Vc++6.0中显示的结果是:
25  =============================================================
26  *p = 5
27  =============================================================
28  */
 1 # include <stdio.h>
 2 # include <malloc.h>
 3  void f( int ** q)
 4 {
 5     *q = ( int *)malloc( sizeof( int));
 6     **q =  4;   //  理解: *q = p;   **q = *p可以赋值。
 7      
 8 
 9 
10 }
11 
12  int main( void)
13 {
14      int * p;
15     f(&p);
16     printf( " *p = %d\n ", *p);
17 
18      return  0;
19 
20 }
21 
22  /*
23  在Vc++6.0中显示的结果是:
24  =================================================
25  *p = 4
26  =================================================

27  */ 

转载于:https://www.cnblogs.com/jssong20000/archive/2012/09/05/2672493.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值