这样运行内存会被用光么?

forever_chang 2001-10-18 08:43:06
main ()
{
char *buffer;
for (;;)
{
buffer =malloc(1000);
}
}
...全文
167 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
kingfish 2001-10-19
  • 打赏
  • 举报
回复
sco unix下我曾试过,malloc会返回null,但程序一结束,又恢复了
eternalee 2001-10-18
  • 打赏
  • 举报
回复
sxxny(柳水) 说得对

并且 dos 程序在 windows 下是被摆到虚拟机上运行的,
你以为内存交换文件是做什么的?
这是由系统保护的
windows 的内存管理做的还是不错的。
并且 windows 的不安全不是因为你运行了某个 dos 程序。
sxxny 2001-10-18
  • 打赏
  • 举报
回复
内存用完????
当然不会了,一般在TC下编译的程序都是默认为小模式(SMALL)的,这种模式规定了程序
的内存数据段和代码段都不超过64K;一旦超过了,就会发生地址越界错误而中断程序。
forever_chang 2001-10-18
  • 打赏
  • 举报
回复
要是能用语句测一下系统资源的变化情况就好了.
谁有解决的方法???
北极猩猩 2001-10-18
  • 打赏
  • 举报
回复
当然不会了,否则就不会有那么多人位memory leak发愁了。
eternalee(看看)你一位windows那么安全吗?
那个程序运行足够长的时间一定会将内存耗光的,这是个典型的memory leak
forever_chang 2001-10-18
  • 打赏
  • 举报
回复
我只是想知道,当指针指向一个新开辟的空间后,原先指向的空间会被自动释放么?
icebird_2000 2001-10-18
  • 打赏
  • 举报
回复
while(1)
{
new int[1000];
}
eternalee 2001-10-18
  • 打赏
  • 举报
回复
绝对不会,你以为 windows 这么不安全
你这样写看输出什么:
#include "stdio.h"
#include "conio.h"
#include "stdlib.h"
void main (void)
{
char *buffer;
for (;;)
{
buffer =(char*)malloc(1000);
getch();
printf("%s\n",buffer);
}
}


不爱看了就 ctrl-break
forever_chang 2001-10-18
  • 打赏
  • 举报
回复
to wanghua_12(world_ww):
不懂可不要乱说噢!
空指针可不是随便乱用的.
forever_chang 2001-10-18
  • 打赏
  • 举报
回复
有谁能详尽的回答这个问题???????
wanghua_12 2001-10-18
  • 打赏
  • 举报
回复
我怀疑编译能否通过?malloc返回一个void *类型
lzumcj 2001-10-18
  • 打赏
  • 举报
回复
试一下就知道了
或许还可以增加一个测试语句,查看资源状况

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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