| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2611 人关注过本帖
标题:[求助]使用molloc函数只能申请64K的内存吗?
只看楼主 加入收藏
anlogo
Rank: 2
等 级:论坛游民
威 望:1
帖 子:293
专家分:20
注 册:2007-7-20
结帖率:100%
收藏
 问题点数:0 回复次数:22 
[求助]使用molloc函数只能申请64K的内存吗?
我使用的是TC2.0
当我使用malloc申请大于64K的内存时,为什么编译器没有报错?

malloc可以申请大于64K的内存空间吗?

main()
{
if((unsigned char *)malloc(640000)==NULL)/*在编译时竟然没有报错*/
printf("NULL"); /*为什么没有执行该语句?*/
}

[此贴子已经被作者于2007-8-17 1:59:40编辑过]

搜索更多相关主题的帖子: 内存 molloc 函数 malloc 申请 
2007-08-16 23:58
无理取闹
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:53
帖 子:4264
专家分:0
注 册:2006-7-26
收藏
得分:0 
在win32 下有将近2g的内存 怎么样啊

win32汇编
病毒 加密
目前兴趣所在
2007-08-17 00:04
雨中飞燕
Rank: 3Rank: 3
等 级:禁止访问
威 望:8
帖 子:2200
专家分:0
注 册:2007-8-9
收藏
得分:0 
为什么要报错啊?
unsigned char *p = NULL;
p=(unsigned char *)malloc(640000);
printf("%d", p);
看看结果就知道行不行了

2007-08-17 00:55
Skai
Rank: 1
等 级:新手上路
帖 子:69
专家分:0
注 册:2006-8-30
收藏
得分:0 
tc 使用的是16位的, 2的16次方也就是64KB, 最多就能分那么多,其实分不到64KB

2007-08-17 00:58
anlogo
Rank: 2
等 级:论坛游民
威 望:1
帖 子:293
专家分:20
注 册:2007-7-20
收藏
得分:0 
以下是引用Skai在2007-8-17 0:58:58的发言:
tc 使用的是16位的, 2的16次方也就是64KB, 最多就能分那么多,其实分不到64KB

既然是这样,为什么编译时没有报错?

2007-08-17 01:22
Skai
Rank: 1
等 级:新手上路
帖 子:69
专家分:0
注 册:2006-8-30
收藏
得分:0 
[root@localhost ~]# cat main.c
#include <stdio.h>

int main(void)
{
printf("%d\n", "hello china");

return 0;
}

[root@localhost ~]#

编译的时候报错吗

2007-08-17 01:24
anlogo
Rank: 2
等 级:论坛游民
威 望:1
帖 子:293
专家分:20
注 册:2007-7-20
收藏
得分:0 
main()
{
if(((unsigned char *)malloc(640000))==NULL) /*在编译时竟然没有报错*/
printf("NULL");
}
那为什么没有执行printf("NULL");语句??

[此贴子已经被作者于2007-8-17 2:00:14编辑过]

2007-08-17 01:56
雨中飞燕
Rank: 3Rank: 3
等 级:禁止访问
威 望:8
帖 子:2200
专家分:0
注 册:2007-8-9
收藏
得分:0 
int a;
a=640000;
printf("%d",a);
试试这个不就知道了
2007-08-17 09:02
卧龙孔明
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:59
帖 子:3872
专家分:684
注 册:2006-10-13
收藏
得分:0 
不是的,molloc默认申请的是near(进程堆)的内存,其实还可以使用farmalloc来申请far(远程堆)的内存,那样还可以获得400-600KB的内存

My Blog: www.aiexp.info
虽然我的路是从这里开始的,但是这里不再是乐土.感谢曾经影响过,引导过,帮助过我的董凯,飞燕,leeco,starwing,Rockcarry,soft_wind等等等等.别了,BCCN.
2007-08-17 09:36
雨中飞燕
Rank: 3Rank: 3
等 级:禁止访问
威 望:8
帖 子:2200
专家分:0
注 册:2007-8-9
收藏
得分:0 
以下是引用卧龙孔明在2007-8-17 9:36:56的发言:
不是的,molloc默认申请的是near(进程堆)的内存,其实还可以使用farmalloc来申请far(远程堆)的内存,那样还可以获得400-600KB的内存

在非TC编译器里根本不需要farmalloc,并且标准里已经废弃了

2007-08-17 09:42
快速回复:[求助]使用molloc函数只能申请64K的内存吗?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.035599 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved