C++ 在一个线程new在另一个线程delete 10

//useworkthread.SSaveUserInfoToAccountServer*pInfo=NULL;pInfo=newSSaveUserInfoToAccou... //use work thread.
SSaveUserInfoToAccountServer* pInfo = NULL;
pInfo = new SSaveUserInfoToAccountServer;
我在一个函数中new了一个空间。然后
pthread_t tid;
if (0 != pthread_create(&tid,NULL,threadSaveUserInfo,pInfo))
把指针传入创建的线程。
void* threadSaveUserInfo(void* pPara)
{
SSaveUserInfoToAccountServer* pInfo = (SSaveUserInfoToAccountServer*) pPara;
int nSock = socket(AF_INET,SOCK_STREAM,0);
if (nSock<= 0)
{
delete pInfo;
return NULL;
}
...
//一些操作
...
delete pInfo;
return NULL;
}
看下面。为啥虚拟内存会越来越大?难道没有delelte掉么?(就是在while(true)中 new-》传创建线程-》执行。)
(37311是VIRT ,221是res)
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
13522 root 20 0 37311m 221m 134m R 1.3 22.3 1:14.59 zoneserver
展开
 我来答
GetSafeHwnd
2015-09-23 · TA获得超过917个赞
知道大有可为答主
回答量:1068
采纳率:76%
帮助的人:724万
展开全部
SSaveUserInfoToAccountServer* pInfo = NULL;// 全局变量

线程一
...
if(!pInfo) pInfo = new ... 判断指针是否已经new了,
...

线程2
...
if(pInfo) delete pInfo 判断指针是否需要delete
...
追问
算了。你不懂Linux。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式