CString[] to CString*和CString* to CString[]?

aydh696 2003-04-19 03:26:13
我有一个函数为;
CString* getstringarray()
{
CString str[2];
for (int i=0 ;i<2;i++)
{
str[i]="aa";
}
return str;

}

然后我在另外一个函数这样用:
aa()
{
CString* a;
a=getstringarray();
}

出错?请大侠们指教!
...全文
50 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
sunyard 2003-04-19
  • 打赏
  • 举报
回复
aydh696 () 和 wocan() 是不是同一个人阿
KcSoft 2003-04-19
  • 打赏
  • 举报
回复
不如用CStringArray 简单点。
wocan 2003-04-19
  • 打赏
  • 举报
回复
new 就可以了
不过不要忘记delete
不过,你的现在也是可以执行的,你在检查以下你的代码
nonocast 2003-04-19
  • 打赏
  • 举报
回复
new 就可以了
不过不要忘记delete
lshadow 2003-04-19
  • 打赏
  • 举报
回复
生存期的问题……
b971049 2003-04-19
  • 打赏
  • 举报
回复
楼上说得对。

可以这样实现你的意图
CString* getstringarray()
{
static CString str[2];
for (int i=0 ;i<2;i++)
{
str[i]="aa";
}
return str;

}

aa()
{
CString* a;
a=getstringarray();
}
aydh696 2003-04-19
  • 打赏
  • 举报
回复
我忘了STR是PUBLIC的
我有一个函数为;
public: CString str[2];
CString* getstringarray()
{
for (int i=0 ;i<2;i++)
{
str[i]="aa";
}
return str;

}

然后我在另外一个函数这样用:
aa()
{
CString* a;
a=getstringarray();
}
sunyard 2003-04-19
  • 打赏
  • 举报
回复
getstringarray应该用new.
在aa中记得delete[] a;
sunyard 2003-04-19
  • 打赏
  • 举报
回复
不过如果不使用a是不会出错的。

mahatma_cn 2003-04-19
  • 打赏
  • 举报
回复
getstringarray()不应该传指针,而要传值
mahatma_cn 2003-04-19
  • 打赏
  • 举报
回复
agree sunyard()
sunyard 2003-04-19
  • 打赏
  • 举报
回复
因为在函数getstringarray中,str是局部变量,出了函数以后就被销毁了
AthlonxpX86 2003-04-19
  • 打赏
  • 举报
回复
aa()
{
CString* a;
a=getstringarray();
}
a没有初始化,
CString str[2];
for (int i=0 ;i<2;i++)
{
str[i]="aa";
}
要操作str应该先getbuffer吧

16,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

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