trealloc.lst
来自「单片及c语言轻松入门的随书光盘」· LST 代码 · 共 59 行
LST
59 行
C51 COMPILER V7.06 TREALLOC 06/20/2006 09:22:50 PAGE 1
C51 COMPILER V7.06, COMPILATION OF MODULE TREALLOC
OBJECT MODULE PLACED IN trealloc.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE trealloc.c LARGE BROWSE DEBUG OBJECTEXTEND
stmt level source
1 #include <reg52.h>
2 #include <stdlib.h>
3 #include <absacc.h> //为使用init_mempool函数中的XBYTE定义而加入该头文件
4 #include <stdio.h> /* 为使用printf函数而加入 */
5 void tst_realloc (void) {
6 1 void xdata *p;
7 1 void xdata *new_p;
8 1 init_mempool (&XBYTE [0x2000], 350); //初始化存储器,指定开始地址及大小
9 1 //去掉该行程序会有连接警告
10 1 //当前结果是"Reallocation succed"
11 1 //如果将参数350改为103及以下,结果将是"Not enough memory space",即p=malloc(100)函数无法成功执行
12 1 //如果将参数350改为307及以下,结果将是"Reallocation failed",即new_p=realloc(p,200)函数无法成功执行
13 1 p = malloc (100);
14 1 if (p != NULL)
15 1 {
16 2 new_p = realloc (p, 200);
17 2 if (new_p != NULL)
18 2 { p = new_p;
19 3 printf ("Reallocation succeed\n");
20 3 }
21 2 else
22 2 printf ("Reallocation failed\n");
23 2 }
24 1 else
25 1 printf("Not enough memory space\n");
26 1 }
27 void main()
28 { SCON = 0x50; /*SCON:工作模式1,8-bit UART,允许接收*/
29 1 TMOD |= 0x20; /*TMOD:定时器T1,工作模式2, 8位自动重载方式*/
30 1 TH1 = 0xf3; /*当波特率为2400时,定时器初值*/
31 1 TR1 = 1; /*定时器T1开始运行*/
32 1 TI = 1; /*允许发送数据*/
33 1 for(;;)
34 1 tst_realloc();
35 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 100 ----
CONSTANT SIZE = 68 ----
XDATA SIZE = ---- 2
PDATA SIZE = ---- ----
DATA SIZE = ---- ----
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?