第一范文网 - 专业文章范例文档资料分享平台

linux系统及应用应用开发实验报告册

来源:用户分享 时间:2025/5/21 5:56:52 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

2、完成对思考题6.5、6.6的调试。

3、完成对思考题6.9的编制,并使用make进行维护。

五.实验结果

实验项目六 Linux内存管理

一、实验目的

(1)了解Linux内存管理的基本原理和方法; (2)了解内存申请和释放的方式;

(3)掌握malloc,realloc,free,calloc 函数的使用。

二、实验内容

(1)使用C语言编写一个包含内存分配与释放的程序,观察分析并显示运行结果; (2)通过gdb等工具对程序进行调试;

(3)在程序运行过程中观察系统内存的使用情况,验证内存管理函数的执行效果。 三.实验软件

VMWare Workstation 5.0; Red hat linux 9.0;

四.实验主要步骤

(1)内存库函数实验-malloc函数,运行程序清单6-1,写明运行结果。 (2)内存库函数实验-calloc函数,运行程序清单6-2,写明运行结果。 (3)内存库函数实验-realloc函数,运行程序清单6-3,写明运行结果。 (4)内存错误分析实验:

指出程序清单6-4的内存错误原因。 指出程序清单6-5的内存错误原因。

通过比较程序清单6-6、6-7输出结果,分析程序6-3内存错误原因。 五.实验结果

程序清单: (1)5-1

#include #include main() {

char *p; clrscr();

// clear screen

p=(char *)malloc(100); if(p)

printf(\

else

printf(\free(p); return 0; }

(2)5-2

#include #include main() {

char *p; clrscr();

// clear screen

p=(char *)calloc(100,sizeof(char)); if(p)

printf(\else

printf(\free(p); return 0; }

(3)5-3

#include #include main() {

char *p; clrscr();

// clear screen

p=(char *)malloc(100); if(p)

printf(\else

printf(\p=(char *)realloc(p,256); if(p)

printf(\else

printf(\free(p); return 0; } (4)5-4 …… Void

ApplyForMem(char *p,int num) {

p=(char*)malloc(sizeof(char)*num); return; } int main() {

char *str=NULL; ………….

ApplyForMem(str,300); free(str);

infile.close(); return 0; }

(5)5-5

#include #include #include int main() {

char z = *(const char *)0; exit(EXIT_SUCCESS); }

(6)5-6

#include “stdlib.h”

#define HEAP_BLOCK_SIZE 32 int main() {

// 分配申明heap 内存块1

char *pbuf1 = (char *) malloc(HEAP_BLOCK_SIZE);

printf(\*pbuf1 = '1';

//分配申明heap 内存块2

char *pbuf2 = (char *) malloc(HEAP_BLOCK_SIZE);

printf(\*pbuf2 = '2';

//分配申明heap 内存块3

char *pbuf3 = (char *) malloc(HEAP_BLOCK_SIZE);

printf(\*pbuf3 = '3';

// 释放heap 内存块1

printf(\block 1 (%d bytes) at Xh freed\pbuf1);

free(pbuf1);

//释放heap 内存块2

printf(\block 2 (%d bytes) at Xh freed\pbuf2);

free(pbuf2);

//释放heap内存块3

printf(\block 3 (%d bytes) at Xh freed\pbuf3);

free(pbuf3);

//分配申明heap 内存块4

char *pbuf4 = (char *) malloc( HEAP_BLOCK_SIZE);

printf(\*pbuf4 = '4';

//分配申明heap 内存块5

char *pbuf5 = (char *) malloc( HEAP_BLOCK_SIZE);

printf(\*pbuf5 = '5';

//分配申明heap 内存块6

char *pbuf6 = (char *) malloc( HEAP_BLOCK_SIZE);

printf(\*pbuf6= '6'; for(;;) { Sleep(1000); }

return 0; }

(7)5-7

#include “stdlib.h”

#define HEAP_BLOCK_SIZE 32 int main() {

// 分配申明heap 内存块1

char *pbuf1 = (char *) malloc(HEAP_BLOCK_SIZE);

printf(\*pbuf1 = '1';

//分配申明heap 内存块2

char *pbuf2 = (char *) malloc(HEAP_BLOCK_SIZE);

printf(\*pbuf2 = '2';

//分配申明heap 内存块3

char *pbuf3 = (char *) malloc(HEAP_BLOCK_SIZE);

printf(\*pbuf3 = '3';

// 释放heap 内存块3

printf(\block 3 (%d bytes) at Xh freed\

搜索更多关于: linux系统及应用应用开发实验报告册 的文档
linux系统及应用应用开发实验报告册.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c8m9k481udd02tjb2ixwe3xy6q955i0014ri_3.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top