分配的内存不可用?真是晕死!

wmrwinhap 2004-05-11 04:57:46

char* pBuf=(char*)malloc(200*1024);
if(pBuf==NULL) { printf("Memory malloc error !\n");
else {
if(recv(sock,pBuf,100*1024,0)<=0) printf("Read error. errno=%d\n",errno); // 条件成立,errno=EFAULT 指示接收缓冲区指针超出程序地址空间

// 如果没有上行的调用,直接进行下行的调用也导致程序段错误
memset(pBuf,0,200*1024);
......
free(pBuf);
}

分配内存前调用system("free")显示系统总内存为190MB,当前可用内存为15MB,SWAP为506MB,当前可用501MB. 内存分配返回了非空指针,却无法使用,真是晕死了!!!

...全文
45 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
wmrwinhap 2004-05-12
  • 打赏
  • 举报
回复
没错是不小心写错程序了,实际我只分配4字节却要用200K呢,真是该打PP!
saoyu 2004-05-11
  • 打赏
  • 举报
回复
200k的空间应该没啥问题啊
gaoxianfeng 2004-05-11
  • 打赏
  • 举报
回复
应该不会 你分配的并不多
tianxiangyuan 2004-05-11
  • 打赏
  • 举报
回复
如果真像你说的那样malloc分配的内存不可用,我不得不怀疑是你的程序的其他地方出了错错误。
anonimousboy 2004-05-11
  • 打赏
  • 举报
回复
malloc是从堆上分配内存,应该没问题啊,在windows下我分配的比这大的多还没问题呢!

23,216

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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