根据前面我们总结出一条"真理", 进入函数内部的参数不可改变,可以改变的是其指向的内容,
那么前面的分配内存的函数可以这样写
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