我要实现的目标如下:目标:经过一个函数处理后,生成一块数据。注意只有经过函数处理后才知道数据有多大。为简化问题,以字符集合表示。注意不是真的要返回字符串,不要高诉我用string或CString什么的。实现:在函数外定义一个指针的指针。并且把他传给函数,传出后取出数据。 char *pStr;
char ** ppStr=&pStr;
SetString(ppStr);
MessageBox(pStr);
// delete pStr;
void SetString(char **ppStr2)
{ // (*ppStr)="Hello,this is a test.";
char * pTmp;
pTmp=new char(100);
memset(pTmp,0,100);
memcpy(pTmp,"Hello,this is a test2.",100);
(*ppStr2)=pTmp;
return ;
}MessageBox()可以显示,但是代码执行若干次后,出现异常。加上delete pStr;,则第一次执行就异常。
请高手指点。
char ** ppStr=&pStr;
SetString(ppStr);
MessageBox(pStr);
// delete pStr;
void SetString(char **ppStr2)
{ // (*ppStr)="Hello,this is a test.";
char * pTmp;
pTmp=new char(100);
memset(pTmp,0,100);
memcpy(pTmp,"Hello,this is a test2.",100);
(*ppStr2)=pTmp;
return ;
}MessageBox()可以显示,但是代码执行若干次后,出现异常。加上delete pStr;,则第一次执行就异常。
请高手指点。
解决方案 »
- 对话框在关闭时,如何将参数值传给其他对话框?
- esc/p针式打印机打印问题
- 请问一个基本的openGL的问题
- 设置光标位置的问题:SetDocumentHTML(html) 之后, SetCaretPos(curpos) 为何失效?
- listbox怎么样实现多列显示啊?添加记录时怎么才能添加到指定的列啊??
- 在connect不成功的情况下内存增加
- VC自动生成的HTML control, 里面的window.external.OnClick为什么不起作用?
- 应用共享
- 菜问题一样给高分!怎样获得控件句柄?
- 没有topbar的对话框怎么移动?
- 疯了!谁告诉我yv12转成rgb的代码.我给他200分
- 请问:为什么我的VS6 SP5这个补丁,在98和2000PRO下不能安装?
void SetString(char **ppStr2)
{ // (*ppStr)="Hello,this is a test.";
char * pTmp;
pTmp=new char[100];//--------修改
memset(pTmp,0,100);
memcpy(pTmp,"Hello,this is a test2.",100);
(*ppStr2)=pTmp;
return ;
}void CTemDlg::OnOK()
{
char *pStr;
char ** ppStr=&pStr;
SetString(ppStr);
MessageBox(pStr);
delete pStr;
return;
{ pStr2=new char[100];//--------修改
memset(pStr2,0,100);
memcpy(pStr2,"Hello,this is a test2.",100);
return ;
}void CTemDlg::OnOK()
{
char *pStr;
SetString(pStr);
MessageBox(pStr);
delete pStr;
return;
}不过在函数外定义指针,在函数内初始化并分配内存,应该不是好方法。不过我没想出更好的办法。因为在调用函数之前不知道需要分配多少内存。