原因是函数kk中修改的是局部指针dest的值,而主函数中dest指针的值并没有改变。
只要修改一处即可:
将void kk(char* dest)改为void kk(char* &dest)
这个问题就是函数方面的问题了。参数作为函数的一部分,在函数被调用时,整个代码存入栈中,函数调用后栈释放掉。参数作为函数的一部分也存放在临时栈中。那么当函数结束是,这个参数随着栈释放而消失了。
想实现的话,就将这个变量或指针的地址带进去:
void kk(char **dest)
{
*dest="aa";
}
kk(&dest);
就可以了