免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12
最近访问板块 发新帖
楼主: pcbit
打印 上一主题 下一主题

一道考研程序设计题目 [复制链接]

论坛徽章:
0
11 [报告]
发表于 2007-12-25 15:51 |只看该作者
原帖由 pcbit 于 2007-12-24 23:53 发表
void setmemory(char **p,int num)
{
        *p=(char *)malloc(num);
}
main()
{
        char *str;
        setmemory(&str,100);
        strcpy(str,"hello");
        printf("%s",str);
}

上面的代码是否有错误的地方吗?我的答案是这段代码除了没有把申请的空间还给系统之外,再没有错误了。对吗? ...


错误:

1. 头文件要包括
#include <stdio.h>
#include <stdlib.h>
#include <string.h>


2. *p=(char *)malloc(num); 要注意内存不足时的情况,要有必要的错误处理。

3. main的形式为 int main()

4. free的问题反而不实特别重要。 加上free更严谨。在本程序不是demon, 也不循环增加内存,很快就结束, 不加也可以,程序结束后内存会自动归还给系统。

论坛徽章:
0
12 [报告]
发表于 2007-12-25 17:21 |只看该作者
把文件的部分映射到内存中,变查找边映射!

论坛徽章:
0
13 [报告]
发表于 2007-12-25 21:48 |只看该作者
貌似每行当作一条记录,而是否文件很大,感觉不是这道题的关注点,它关注的是如何实现二叉查找搜索算法的具体应用。
该问题的一点思路:
可以考虑把每个word数据读入字符串数组,让它作为要查找记录的索引,再根据二叉查找算法实现word查找,然后根据记录位置
计算出位置,再fseek到要读的记录。这样即可。

论坛徽章:
0
14 [报告]
发表于 2007-12-26 13:33 |只看该作者
11楼真严谨

论坛徽章:
0
15 [报告]
发表于 2007-12-26 14:26 |只看该作者
原帖由 doctorjxd 于 2007-12-25 15:51 发表


错误:

1. 头文件要包括
#include
#include
#include


2. *p=(char *)malloc(num); 要注意内存不足时的情况,要有必要的错误处理。

3. main的形式为 int main()

4. free的问题反而不实特 ...


非常棒!!!!
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP