char* 指针做为参数传递的注意点

GetOutFilePath(char* filePath, bool isMain)
{

}

char* fileName=new char[256];
GetOutFilePath(fileName,isMain);

delete[]fileName;

这里指针虽然传递了,但是没有把内容返回给形参?为什么呢?

关键是你要先弄明白,指针与指针指向的内存段之间的关系,浅层赋值还是深层拷贝,作用域等问题。

指针本身作参数传递和普通变量类似,拷贝传值,在函数里对它直接赋值只是改了形参指针的指向,并不会对外部实参指针有任何改变。

你要修改形参指针原本指向的那一块内存,就不能是指针之间直接赋值,而是把其它指针指向的一块内存数据拷贝到形参指针指向的内存块去。

使用strcpy(filename,filepath);这样就可以赋值给形参了。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值