怎么传参让参数能被改变?

weixin_42133212 2019-04-24 09:41:08
void testsend()
{
char* errstr = new char[100];
size_t errsize = 0;

char* str = "11111";
fixsend(str, errstr, errsize);
std::cout << "errstr:" << errstr;
}
我调用dll中的 fixsend,想得到errstr ,但老是返回原来的值,该怎么改? 求助谢谢
bool fixsend(const char* str, char* errstr, size_t errstrsize)
{
bool ret = false;
FIX::Message order;
cJSON *json;
json = cJSON_Parse(str);
errstr = Strtofixmsg(json, order);
errstrsize = strlen(errstr);
。。。。
...全文
262 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
wallesyoyo 2019-04-24
  • 打赏
  • 举报
回复
引用 3 楼 weixin_42133212 的回复:
就是不懂为什么不能直接赋值


直接赋值你修改的是形参指针这个局部变量,而实际需求是要通过指针去修改这个指针指向的内存空间,也就是你外部的 new char[100] 的空间。

weixin_42133212 2019-04-24
  • 打赏
  • 举报
回复
就是不懂为什么不能直接赋值
weixin_42133212 2019-04-24
  • 打赏
  • 举报
回复
引用 1 楼 wallesyoyo 的回复:
修改 errstr = Strtofixmsg(json, order); 为 strcpy(errstr, Strtofixmsg(json, order));
谢谢 改了后就好了
wallesyoyo 2019-04-24
  • 打赏
  • 举报
回复
修改

errstr = Strtofixmsg(json, order);



strcpy(errstr, Strtofixmsg(json, order));

64,281

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧