⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 malloc.c

📁 sdcc是为51等小型嵌入式cpu设计的c语言编译器支持数种不同类型的cpu
💻 C
字号:
/* Simple malloc tests. */#include <testfwk.h>#include <stdlib.h>#if defined(SDCC_pic16)#include <malloc.h>#endifxdata char heap[100];voidtestMalloc(void){  void xdata *p1, *p2, *p3;  char *p;  unsigned char i;#if !defined(__GNUC__) && !defined(SDCC_gbz80) && !defined(SDCC_z80)#if defined(SDCC_pic16)  _initHeap(heap, sizeof heap);#else  init_dynamic_memory((MEMHEADER xdata *)heap, sizeof(heap));#endif  p1 = malloc(200);  ASSERT(p1 == NULL);  LOG(("p1 == NULL when out of memory\n"));#ifdef PORT_HOST  LOG(("p1: %p\n", p1));#else  LOG(("p1: %u\n", (unsigned) p1));#endif#endif  p1 = malloc(5);  ASSERT(p1 != NULL);#ifdef PORT_HOST  LOG(("p1: %p\n", p1));#else  LOG(("p1: %u\n", (unsigned) p1));#endif  p2 = malloc(20);  ASSERT(p2 != NULL);#ifdef PORT_HOST  LOG(("p2: %p\n", p2));#else  LOG(("p2: %u\n", (unsigned) p2));#endif  p = (char*)p2;  for (i=0; i<20; i++, p++)    *p = i;  p2 = realloc(p2, 25);  ASSERT(p2 != NULL);#ifdef PORT_HOST  LOG(("p2, after expanding realloc: %p\n", p2));#else  LOG(("p2, after expanding realloc: %u\n", (unsigned) p2));#endif  p = (char*)p2;  for (i=0; i<20; i++, p++)    ASSERT(*p == i);  p2 = realloc(p2, 15);  ASSERT(p2 != NULL);#ifdef PORT_HOST  LOG(("p2, after shrinking realloc: %p\n", p2));#else  LOG(("p2, after shrinking realloc: %u\n", (unsigned) p2));#endif  p = (char*)p2;  for (i=0; i<15; i++, p++)    ASSERT(*p == i);  free(p2);  p3 = malloc(10);  ASSERT(p3 != NULL);#ifdef PORT_HOST  LOG(("p3, after freeing p2: %p\n", p3));#else  LOG(("p3, after freeing p2: %u\n", (unsigned) p3));#endif}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -