trealloc.c
来自「单片及c语言轻松入门的随书光盘」· C语言 代码 · 共 36 行
C
36 行
#include <reg52.h>
#include <stdlib.h>
#include <absacc.h> //为使用init_mempool函数中的XBYTE定义而加入该头文件
#include <stdio.h> /* 为使用printf函数而加入 */
void tst_realloc (void) {
void xdata *p;
void xdata *new_p;
init_mempool (&XBYTE [0x2000], 350); //初始化存储器,指定开始地址及大小
//去掉该行程序会有连接警告
//当前结果是"Reallocation succed"
//如果将参数350改为103及以下,结果将是"Not enough memory space",即p=malloc(100)函数无法成功执行
//如果将参数350改为307及以下,结果将是"Reallocation failed",即new_p=realloc(p,200)函数无法成功执行
p = malloc (100);
if (p != NULL)
{
new_p = realloc (p, 200);
if (new_p != NULL)
{ p = new_p;
printf ("Reallocation succeed\n");
}
else
printf ("Reallocation failed\n");
}
else
printf("Not enough memory space\n");
}
void main()
{ SCON = 0x50; /*SCON:工作模式1,8-bit UART,允许接收*/
TMOD |= 0x20; /*TMOD:定时器T1,工作模式2, 8位自动重载方式*/
TH1 = 0xf3; /*当波特率为2400时,定时器初值*/
TR1 = 1; /*定时器T1开始运行*/
TI = 1; /*允许发送数据*/
for(;;)
tst_realloc();
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?