请问:
char * GetBuf()
{
char * p = new char[100];
sprintf(p,"this is a test");
return p;
}
main()
{
char * p=GetBuf();
printf("%s",p);
}
在上面的简单程序中,在GetBuf函数中分配的内存空间是怎么释放的?在什么时候释放?多谢了。
char * GetBuf()
{
char * p = new char[100];
sprintf(p,"this is a test");
return p;
}
main()
{
char * p=GetBuf();
printf("%s",p);
}
在上面的简单程序中,在GetBuf函数中分配的内存空间是怎么释放的?在什么时候释放?多谢了。
解决方案 »
- MFC中怎么用WSASend、WSARecv收发数据
- 带有图标和下三角符号的查找编辑框控件
- 我是新手.ICMP校验和的校验和函数看不懂,谁能详细跟我解释一下,通俗易懂一点.
- XP sp2 下如何启用autorun.inf ,问了很久都没人知道
- 改变鼠标指针形状后,但一指向有按钮或EDIT控件的就会打回原形?
- 手工加的类(基类 CFrameWnd),手工加的函数OnPaint(),设断点怎么不响应呀。
- 怎样可以改变CListCtrl的滑动条的颜色? (在线等)
- 请教使用ActiveX控件中 <PARAM NAME= VALUE= > 的问题
- 如何切换视图(Debug 正常,Release 出错!)?
- clistctrl问题,紧急!
- ExitInstance不能被执行
- VC如何做这样一个热键,仅在我的程序处于激活状态时有效?具体请看
{
char * p=GetBuf();
printf("%s",p);
delete[] p; // Add this
}
如果这样用
void GetBuf(char * p)
{
sprintf(p,"this is a test");
}
main()
{
char * p = new char[100];
GetBuf(p);
printf("%s",p);
delete[] p;
}
两种用法有什么不同?各有什么优缺点?
这是编程的一个原则,要好好学习。