get_memory(char* p,int num) 续

根据前面我们总结出一条"真理", 进入函数内部的参数不可改变,可以改变的是其指向的内容,

 

那么前面的分配内存的函数可以这样写

 

void get_memory(char** p,int num)
{
     *p=(char*)malloc(num*sizeof(char));

}

 

 指向指针的指针,指针不变,指针指向的内容改变

 

如何使用呢

 

 get_memory(&str,12);

 

 

结果正确。

 

 

意外发现,malloc 分配内存,内存数据为

 

cd cd cd cd cd cd cd cd cd cd cd cd

 

free 内存,内存数据为

ee fe ee fe ee fe ee fe ee fe ee fe ee fe ee fe ee fe ee fe ee fe ee fe ee fe ee fe ee fe ee fe ee fe ee fe ee 

 

这是一条rule ???

 

 

防止传值的做法还有用引用,如

void change(int& i)
{
    i=100;
}

 

 int i=10;
 cout<<i<<endl;

 change(i);
 cout<<i<<endl;

 

后一个就是100

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值