请帮我调一下.

redkey_919 2003-01-07 12:25:10
我的目的是在 ConvChr() 中利用 string 型做一些处理后返回 char *,利用 memcpy 为另一个 char * 赋值, 这里是简化代码,原代码一定要使用 memcpy 的.
请帮我调一下.
#include <iostream>
#include <string>
using namespace std;

const char * ConvChr()
{
string strVal;
strVal = "abc";
return strVal.c_str();
}


int main()
{
char chrVal[20]="def";
memcpy(chrVal, ConvChr(), sizeof(ConvChr()));

cout << chrVal << endl;

return 0;
}
...全文
135 3 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
atma 2003-01-08
  • 打赏
  • 举报
回复
danmao说的有理。你不能使用栈对象,那在函数退出的时候就被出栈释放了。用static或者new出来的对象。不过如果是new出来的,那还要有一个函数来释放它。:)
skyfine 2003-01-07
  • 打赏
  • 举报
回复
最后结果为“abc"有什么问题吗?
danmao 2003-01-07
  • 打赏
  • 举报
回复

const char * ConvChr()
{
static string strVal;
strVal = "abc";
return strVal.c_str();
}

strVal一定要声明称静态变量,在退出函数时不会被析构。

24,860

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 工具平台和程序库
社区管理员
  • 工具平台和程序库社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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