C51 实现动态内存分配

来源:互联网 发布:js 图层隐藏 编辑:程序博客网 时间:2024/06/05 12:48

    前几天尝试了一下C51 keil4编译其中对 malloc的函数的调用,最后感觉可以读取 len 的长度来实现内存分配;

今天尝试写了一下;程序如下;


/********************************************************************************************************//* 静态数组长度 */#define     OSAL_MEMORY_LEN                    256                                   /* 静态数组最大长度 *//********************************************************************************************************//********************************************************************************************************//* 局部变量定义 *//* 系统随机分配一个数组,将数组的首地址和数组的长度N作为堆区的空间参数 */ static  uint8  x_data  membuf[OSAL_MEMORY_LEN]; /********************************************************************************************************//***********************************************************************************************************  **功能描述: 打印指针的地址及其所指向的内容  **入口参数:   **          @*addr          ---                                 -要打印的地址起始位置  **          @len            ---                                 -要打印的地址的长度  **出口参数: 无  **-------------------------=------------------------------------  **函数注释: 无  **********************************************************************************************************  */  void uart_print_register(uint8 *addr, uint16 len)  {      uint8   tmp[16];      uint16  i;       for (i=0; i<len; i++)      {  <span style="white-space:pre"></span>memset(tmp, 0, sizeof(tmp));          sprintf(tmp,"%p=0x%-4.2X ",addr,(uint16)*addr++);          uart_print_string(UART1, tmp);  if ((i+1)%8 == 0)          {              uart_print_enter(UART1);          }      }      uart_print_enter(UART1);  }  /*************************************************************************************************************功能描述: 初始化 membuf 静态数组;并调用 init_mempool 函数来初始化动态内存**入口参数: 无**出口参数: 无**-------------------------=------------------------------------**函数注释: 无***********************************************************************************************************/static void memory_init_membuf(void){memset      (membuf, 0, sizeof(membuf));init_mempool(membuf,    sizeof(membuf));           /* 来初始化 membuf[] 数组;得到一个可以动态分配的堆 */}/*************************************************************************************************************功能描述: 获取动态内存堆中剩余可分配的字节数**入口参数: 无**出口参数: 无**-------------------------=------------------------------------**函数注释: 无***********************************************************************************************************/static uint16 memory_read_stacklen(void){uint16  lw_retlen = 0;if (455 >= OSAL_MEMORY_LEN){lw_retlen = ((uint16)membuf[2] << 8) |  membuf[3];}else{lw_retlen = ((uint16)membuf[3] << 8) |  membuf[4];}return lw_retlen;}/*************************************************************************************************************功能描述: 动态内存分配**入口参数: @*num_bytes      ---                                 -需要分配的字节数**出口参数: 未确定类型的指针**-------------------------=------------------------------------**函数注释: **  malloc 向系统申请分配指定size个字节的内存空间**  返回类型是 void* 类型; void* 表示未确定类型的指针**  C,C++规定, void* 类型可以通过类型转换强制转换为任何其它类型的指针***********************************************************************************************************/void *osal_malloc(uint16 num_bytes){void  *lp = NULL;if ( num_bytes <= memory_read_stacklen() ){lp = malloc(num_bytes);}return  lp;}/*************************************************************************************************************功能描述: 动态分配完内存后,自动初始化该内存空间为零**入口参数: **         @*num_bytes      ---                                 -需要分配的字节数**         @size            ---                                 -需要分配的变量字长**出口参数: 未确定类型的指针**-------------------------=------------------------------------**函数注释: **  calloc 内存的动态存储区中分配n个长度为size的连续空间**  返回类型是 void* 类型; void* 表示未确定类型的指针**  C,C++规定, void* 类型可以通过类型转换强制转换为任何其它类型的指针***********************************************************************************************************/void *osal_calloc(uint16 num_bytes, unsigned int size){void  *lp = NULL;if ( num_bytes <= memory_read_stacklen() ){lp = calloc(num_bytes,size);}return  lp;}/*************************************************************************************************************功能描述: 释放 malloc 等函数申请的动态内存**入口参数: @*ptr           ---                                 -malloc 等函数申请的动态内存的指针**出口参数: 无**-------------------------=------------------------------------**函数注释: **  使用后该指针变量一定要重新指向NULL,防止野指针出现,有效规避误操作**  对于free(p)这句语句,如果p是NULL指针,  那么free对p无论操作多少次都不会出问题**                      如果p不是NULL指针,那么free对p连续操作两次就会导致程序运行错误***********************************************************************************************************/void osal_free(void *ptr){free(ptr);ptr = NULL;}/*************************************************************************************************************功能描述: 从 src 复制 len 个字节内存到 dst**入口参数: **         @*src            ---                                 -源地址**         @*dst            ---                                 -目标地址**         @len             ---                                 -拷贝的长度**出口参数: 返回目标指针**-------------------------=------------------------------------**函数注释: **  使用后该指针变量一定要重新指向NULL,防止野指针出现,有效规避误操作**  对于free(p)这句语句,如果p是NULL指针,  那么free对p无论操作多少次都不会出问题**                      如果p不是NULL指针,那么free对p连续操作两次就会导致程序运行错误***********************************************************************************************************/void *osal_memcpy(void *dst, const void *src, uint16 len){uint8       *lp_dst;const uint8 *lp_src;lp_src = src;lp_dst = dst;while (len--){*lp_dst++ = *lp_src++;}return (lp_dst);}


上面程序中有一个需要注意下的就是函数 memory_read_stacklen() 中的参数455;静态内存的剩余字节数 len 并不是入昨天所猜测的一样,大于255就存放在两个字节中;

经过多次的尝试,最后确定了如下的参数,静态内存的范围 在 255 - 3072 时,函数满足要求读取出剩余可用的字节数;


一下是测试程序:

首先开辟 lp1len = 100;  lp2len = 100; 如果再开辟 lp3len = 100的话;返回NULL

void memory_testrun(void){uint16  i = 0;uint8   *lp1,*lp2,*lp3,*lp4,*lp5;uart_print_register(membuf, sizeof(membuf));uart_print_format(UART1, "stacklen is ", "%.0f", (fp32)memory_read_stacklen());lp1 = osal_malloc(100);lp4 = lp1;if (NULL != lp1){for(i=0; i<99; i++){*lp1++ = i%10 + '0';}*lp1 = 0;uart_print_debug_twostring(UART1, "lp1 :", lp4);uart_print_debug_string(UART1, "lp1 is ok");}else{uart_print_debug_string(UART1, "lp1 is error");}lp2 = osal_malloc(100);lp5 = lp2;if (NULL != lp2){for(i=0; i<99; i++){*lp2++ = i%10 + 'a';}*lp2 = 0;uart_print_debug_twostring(UART1, "lp2 :", lp5);uart_print_debug_string(UART1, "lp2 is ok");//osal_free(lp5);}else{uart_print_debug_string(UART1, "lp2 is error");}lp3 = osal_calloc(100, sizeof(uint8));if (NULL != lp3){uart_print_debug_string(UART1, "lp3 is ok");}else{uart_print_debug_string(UART1, "lp3 is error");}uart_print_register(membuf, sizeof(membuf));uart_print_format(UART1, "stacklen is ", "%.0f", (fp32)memory_read_stacklen());}
输出如下;我们卡伊看到 lp3失败;

x:01c8=0x00   x:01c9=0x00   x:01ca=0x00   x:01cb=0xFC   x:01cc=0x00   x:01cd=0x00   x:01ce=0x00   x:01cf=0x00   x:01d0=0x00   x:01d1=0x00   x:01d2=0x00   x:01d3=0x00   x:01d4=0x00   x:01d5=0x00   x:01d6=0x00   x:01d7=0x00   x:01d8=0x00   x:01d9=0x00   x:01da=0x00   x:01db=0x00   x:01dc=0x00   x:01dd=0x00   x:01de=0x00   x:01df=0x00   x:01e0=0x00   x:01e1=0x00   x:01e2=0x00   x:01e3=0x00   x:01e4=0x00   x:01e5=0x00   x:01e6=0x00   x:01e7=0x00   x:01e8=0x00   x:01e9=0x00   x:01ea=0x00   x:01eb=0x00   x:01ec=0x00   x:01ed=0x00   x:01ee=0x00   x:01ef=0x00   x:01f0=0x00   x:01f1=0x00   x:01f2=0x00   x:01f3=0x00   x:01f4=0x00   x:01f5=0x00   x:01f6=0x00   x:01f7=0x00   x:01f8=0x00   x:01f9=0x00   x:01fa=0x00   x:01fb=0x00   x:01fc=0x00   x:01fd=0x00   x:01fe=0x00   x:01ff=0x00   x:0200=0x00   x:0201=0x00   x:0202=0x00   x:0203=0x00   x:0204=0x00   x:0205=0x00   x:0206=0x00   x:0207=0x00   x:0208=0x00   x:0209=0x00   x:020a=0x00   x:020b=0x00   x:020c=0x00   x:020d=0x00   x:020e=0x00   x:020f=0x00   x:0210=0x00   x:0211=0x00   x:0212=0x00   x:0213=0x00   x:0214=0x00   x:0215=0x00   x:0216=0x00   x:0217=0x00   x:0218=0x00   x:0219=0x00   x:021a=0x00   x:021b=0x00   x:021c=0x00   x:021d=0x00   x:021e=0x00   x:021f=0x00   x:0220=0x00   x:0221=0x00   x:0222=0x00   x:0223=0x00   x:0224=0x00   x:0225=0x00   x:0226=0x00   x:0227=0x00   x:0228=0x00   x:0229=0x00   x:022a=0x00   x:022b=0x00   x:022c=0x00   x:022d=0x00   x:022e=0x00   x:022f=0x00   x:0230=0x00   x:0231=0x00   x:0232=0x00   x:0233=0x00   x:0234=0x00   x:0235=0x00   x:0236=0x00   x:0237=0x00   x:0238=0x00   x:0239=0x00   x:023a=0x00   x:023b=0x00   x:023c=0x00   x:023d=0x00   x:023e=0x00   x:023f=0x00   x:0240=0x00   x:0241=0x00   x:0242=0x00   x:0243=0x00   x:0244=0x00   x:0245=0x00   x:0246=0x00   x:0247=0x00   x:0248=0x00   x:0249=0x00   x:024a=0x00   x:024b=0x00   x:024c=0x00   x:024d=0x00   x:024e=0x00   x:024f=0x00   x:0250=0x00   x:0251=0x00   x:0252=0x00   x:0253=0x00   x:0254=0x00   x:0255=0x00   x:0256=0x00   x:0257=0x00   x:0258=0x00   x:0259=0x00   x:025a=0x00   x:025b=0x00   x:025c=0x00   x:025d=0x00   x:025e=0x00   x:025f=0x00   x:0260=0x00   x:0261=0x00   x:0262=0x00   x:0263=0x00   x:0264=0x00   x:0265=0x00   x:0266=0x00   x:0267=0x00   x:0268=0x00   x:0269=0x00   x:026a=0x00   x:026b=0x00   x:026c=0x00   x:026d=0x00   x:026e=0x00   x:026f=0x00   x:0270=0x00   x:0271=0x00   x:0272=0x00   x:0273=0x00   x:0274=0x00   x:0275=0x00   x:0276=0x00   x:0277=0x00   x:0278=0x00   x:0279=0x00   x:027a=0x00   x:027b=0x00   x:027c=0x00   x:027d=0x00   x:027e=0x00   x:027f=0x00   x:0280=0x00   x:0281=0x00   x:0282=0x00   x:0283=0x00   x:0284=0x00   x:0285=0x00   x:0286=0x00   x:0287=0x00   x:0288=0x00   x:0289=0x00   x:028a=0x00   x:028b=0x00   x:028c=0x00   x:028d=0x00   x:028e=0x00   x:028f=0x00   x:0290=0x00   x:0291=0x00   x:0292=0x00   x:0293=0x00   x:0294=0x00   x:0295=0x00   x:0296=0x00   x:0297=0x00   x:0298=0x00   x:0299=0x00   x:029a=0x00   x:029b=0x00   x:029c=0x00   x:029d=0x00   x:029e=0x00   x:029f=0x00   x:02a0=0x00   x:02a1=0x00   x:02a2=0x00   x:02a3=0x00   x:02a4=0x00   x:02a5=0x00   x:02a6=0x00   x:02a7=0x00   x:02a8=0x00   x:02a9=0x00   x:02aa=0x00   x:02ab=0x00   x:02ac=0x00   x:02ad=0x00   x:02ae=0x00   x:02af=0x00   x:02b0=0x00   x:02b1=0x00   x:02b2=0x00   x:02b3=0x00   x:02b4=0x00   x:02b5=0x00   x:02b6=0x00   x:02b7=0x00   x:02b8=0x00   x:02b9=0x00   x:02ba=0x00   x:02bb=0x00   x:02bc=0x00   x:02bd=0x00   x:02be=0x00   x:02bf=0x00   x:02c0=0x00   x:02c1=0x00   x:02c2=0x00   x:02c3=0x00   x:02c4=0x00   x:02c5=0x00   x:02c6=0x00   x:02c7=0x00   stacklen is 252lp1 :012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678lp1 is oklp2 :abcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghilp2 is oklp3 is errorx:01c8=0x00   x:01c9=0x00   x:01ca=0x00   x:01cb=0x2C   x:01cc=0x00   x:01cd=0x00   x:01ce=0x00   x:01cf=0x00   x:01d0=0x00   x:01d1=0x00   x:01d2=0x00   x:01d3=0x00   x:01d4=0x00   x:01d5=0x00   x:01d6=0x00   x:01d7=0x00   x:01d8=0x00   x:01d9=0x00   x:01da=0x00   x:01db=0x00   x:01dc=0x00   x:01dd=0x00   x:01de=0x00   x:01df=0x00   x:01e0=0x00   x:01e1=0x00   x:01e2=0x00   x:01e3=0x00   x:01e4=0x00   x:01e5=0x00   x:01e6=0x00   x:01e7=0x00   x:01e8=0x00   x:01e9=0x00   x:01ea=0x00   x:01eb=0x00   x:01ec=0x00   x:01ed=0x00   x:01ee=0x00   x:01ef=0x00   x:01f0=0x00   x:01f1=0x00   x:01f2=0x00   x:01f3=0x00   x:01f4=0x00   x:01f5=0x00   x:01f6=0x00   x:01f7=0x00   x:01f8=0x00   x:01f9=0x00   x:01fa=0x00   x:01fb=0x64   x:01fc=0x61   x:01fd=0x62   x:01fe=0x63   x:01ff=0x64   x:0200=0x65   x:0201=0x66   x:0202=0x67   x:0203=0x68   x:0204=0x69   x:0205=0x6A   x:0206=0x61   x:0207=0x62   x:0208=0x63   x:0209=0x64   x:020a=0x65   x:020b=0x66   x:020c=0x67   x:020d=0x68   x:020e=0x69   x:020f=0x6A   x:0210=0x61   x:0211=0x62   x:0212=0x63   x:0213=0x64   x:0214=0x65   x:0215=0x66   x:0216=0x67   x:0217=0x68   x:0218=0x69   x:0219=0x6A   x:021a=0x61   x:021b=0x62   x:021c=0x63   x:021d=0x64   x:021e=0x65   x:021f=0x66   x:0220=0x67   x:0221=0x68   x:0222=0x69   x:0223=0x6A   x:0224=0x61   x:0225=0x62   x:0226=0x63   x:0227=0x64   x:0228=0x65   x:0229=0x66   x:022a=0x67   x:022b=0x68   x:022c=0x69   x:022d=0x6A   x:022e=0x61   x:022f=0x62   x:0230=0x63   x:0231=0x64   x:0232=0x65   x:0233=0x66   x:0234=0x67   x:0235=0x68   x:0236=0x69   x:0237=0x6A   x:0238=0x61   x:0239=0x62   x:023a=0x63   x:023b=0x64   x:023c=0x65   x:023d=0x66   x:023e=0x67   x:023f=0x68   x:0240=0x69   x:0241=0x6A   x:0242=0x61   x:0243=0x62   x:0244=0x63   x:0245=0x64   x:0246=0x65   x:0247=0x66   x:0248=0x67   x:0249=0x68   x:024a=0x69   x:024b=0x6A   x:024c=0x61   x:024d=0x62   x:024e=0x63   x:024f=0x64   x:0250=0x65   x:0251=0x66   x:0252=0x67   x:0253=0x68   x:0254=0x69   x:0255=0x6A   x:0256=0x61   x:0257=0x62   x:0258=0x63   x:0259=0x64   x:025a=0x65   x:025b=0x66   x:025c=0x67   x:025d=0x68   x:025e=0x69   x:025f=0x00   x:0260=0x00   x:0261=0x00   x:0262=0x00   x:0263=0x64   x:0264=0x30   x:0265=0x31   x:0266=0x32   x:0267=0x33   x:0268=0x34   x:0269=0x35   x:026a=0x36   x:026b=0x37   x:026c=0x38   x:026d=0x39   x:026e=0x30   x:026f=0x31   x:0270=0x32   x:0271=0x33   x:0272=0x34   x:0273=0x35   x:0274=0x36   x:0275=0x37   x:0276=0x38   x:0277=0x39   x:0278=0x30   x:0279=0x31   x:027a=0x32   x:027b=0x33   x:027c=0x34   x:027d=0x35   x:027e=0x36   x:027f=0x37   x:0280=0x38   x:0281=0x39   x:0282=0x30   x:0283=0x31   x:0284=0x32   x:0285=0x33   x:0286=0x34   x:0287=0x35   x:0288=0x36   x:0289=0x37   x:028a=0x38   x:028b=0x39   x:028c=0x30   x:028d=0x31   x:028e=0x32   x:028f=0x33   x:0290=0x34   x:0291=0x35   x:0292=0x36   x:0293=0x37   x:0294=0x38   x:0295=0x39   x:0296=0x30   x:0297=0x31   x:0298=0x32   x:0299=0x33   x:029a=0x34   x:029b=0x35   x:029c=0x36   x:029d=0x37   x:029e=0x38   x:029f=0x39   x:02a0=0x30   x:02a1=0x31   x:02a2=0x32   x:02a3=0x33   x:02a4=0x34   x:02a5=0x35   x:02a6=0x36   x:02a7=0x37   x:02a8=0x38   x:02a9=0x39   x:02aa=0x30   x:02ab=0x31   x:02ac=0x32   x:02ad=0x33   x:02ae=0x34   x:02af=0x35   x:02b0=0x36   x:02b1=0x37   x:02b2=0x38   x:02b3=0x39   x:02b4=0x30   x:02b5=0x31   x:02b6=0x32   x:02b7=0x33   x:02b8=0x34   x:02b9=0x35   x:02ba=0x36   x:02bb=0x37   x:02bc=0x38   x:02bd=0x39   x:02be=0x30   x:02bf=0x31   x:02c0=0x32   x:02c1=0x33   x:02c2=0x34   x:02c3=0x35   x:02c4=0x36   x:02c5=0x37   x:02c6=0x38   x:02c7=0x00   stacklen is 44
首先开辟 lp1len = 100;  lp2len = 100;释放lp2; 如果再开辟 lp3len = 100的话;那么应该可以成功;把上面的函数这个 osal_free(lp5)加入函数中;

输出结果如下

x:01c8=0x00   x:01c9=0x00   x:01ca=0x00   x:01cb=0xFC   x:01cc=0x00   x:01cd=0x00   x:01ce=0x00   x:01cf=0x00   x:01d0=0x00   x:01d1=0x00   x:01d2=0x00   x:01d3=0x00   x:01d4=0x00   x:01d5=0x00   x:01d6=0x00   x:01d7=0x00   x:01d8=0x00   x:01d9=0x00   x:01da=0x00   x:01db=0x00   x:01dc=0x00   x:01dd=0x00   x:01de=0x00   x:01df=0x00   x:01e0=0x00   x:01e1=0x00   x:01e2=0x00   x:01e3=0x00   x:01e4=0x00   x:01e5=0x00   x:01e6=0x00   x:01e7=0x00   x:01e8=0x00   x:01e9=0x00   x:01ea=0x00   x:01eb=0x00   x:01ec=0x00   x:01ed=0x00   x:01ee=0x00   x:01ef=0x00   x:01f0=0x00   x:01f1=0x00   x:01f2=0x00   x:01f3=0x00   x:01f4=0x00   x:01f5=0x00   x:01f6=0x00   x:01f7=0x00   x:01f8=0x00   x:01f9=0x00   x:01fa=0x00   x:01fb=0x00   x:01fc=0x00   x:01fd=0x00   x:01fe=0x00   x:01ff=0x00   x:0200=0x00   x:0201=0x00   x:0202=0x00   x:0203=0x00   x:0204=0x00   x:0205=0x00   x:0206=0x00   x:0207=0x00   x:0208=0x00   x:0209=0x00   x:020a=0x00   x:020b=0x00   x:020c=0x00   x:020d=0x00   x:020e=0x00   x:020f=0x00   x:0210=0x00   x:0211=0x00   x:0212=0x00   x:0213=0x00   x:0214=0x00   x:0215=0x00   x:0216=0x00   x:0217=0x00   x:0218=0x00   x:0219=0x00   x:021a=0x00   x:021b=0x00   x:021c=0x00   x:021d=0x00   x:021e=0x00   x:021f=0x00   x:0220=0x00   x:0221=0x00   x:0222=0x00   x:0223=0x00   x:0224=0x00   x:0225=0x00   x:0226=0x00   x:0227=0x00   x:0228=0x00   x:0229=0x00   x:022a=0x00   x:022b=0x00   x:022c=0x00   x:022d=0x00   x:022e=0x00   x:022f=0x00   x:0230=0x00   x:0231=0x00   x:0232=0x00   x:0233=0x00   x:0234=0x00   x:0235=0x00   x:0236=0x00   x:0237=0x00   x:0238=0x00   x:0239=0x00   x:023a=0x00   x:023b=0x00   x:023c=0x00   x:023d=0x00   x:023e=0x00   x:023f=0x00   x:0240=0x00   x:0241=0x00   x:0242=0x00   x:0243=0x00   x:0244=0x00   x:0245=0x00   x:0246=0x00   x:0247=0x00   x:0248=0x00   x:0249=0x00   x:024a=0x00   x:024b=0x00   x:024c=0x00   x:024d=0x00   x:024e=0x00   x:024f=0x00   x:0250=0x00   x:0251=0x00   x:0252=0x00   x:0253=0x00   x:0254=0x00   x:0255=0x00   x:0256=0x00   x:0257=0x00   x:0258=0x00   x:0259=0x00   x:025a=0x00   x:025b=0x00   x:025c=0x00   x:025d=0x00   x:025e=0x00   x:025f=0x00   x:0260=0x00   x:0261=0x00   x:0262=0x00   x:0263=0x00   x:0264=0x00   x:0265=0x00   x:0266=0x00   x:0267=0x00   x:0268=0x00   x:0269=0x00   x:026a=0x00   x:026b=0x00   x:026c=0x00   x:026d=0x00   x:026e=0x00   x:026f=0x00   x:0270=0x00   x:0271=0x00   x:0272=0x00   x:0273=0x00   x:0274=0x00   x:0275=0x00   x:0276=0x00   x:0277=0x00   x:0278=0x00   x:0279=0x00   x:027a=0x00   x:027b=0x00   x:027c=0x00   x:027d=0x00   x:027e=0x00   x:027f=0x00   x:0280=0x00   x:0281=0x00   x:0282=0x00   x:0283=0x00   x:0284=0x00   x:0285=0x00   x:0286=0x00   x:0287=0x00   x:0288=0x00   x:0289=0x00   x:028a=0x00   x:028b=0x00   x:028c=0x00   x:028d=0x00   x:028e=0x00   x:028f=0x00   x:0290=0x00   x:0291=0x00   x:0292=0x00   x:0293=0x00   x:0294=0x00   x:0295=0x00   x:0296=0x00   x:0297=0x00   x:0298=0x00   x:0299=0x00   x:029a=0x00   x:029b=0x00   x:029c=0x00   x:029d=0x00   x:029e=0x00   x:029f=0x00   x:02a0=0x00   x:02a1=0x00   x:02a2=0x00   x:02a3=0x00   x:02a4=0x00   x:02a5=0x00   x:02a6=0x00   x:02a7=0x00   x:02a8=0x00   x:02a9=0x00   x:02aa=0x00   x:02ab=0x00   x:02ac=0x00   x:02ad=0x00   x:02ae=0x00   x:02af=0x00   x:02b0=0x00   x:02b1=0x00   x:02b2=0x00   x:02b3=0x00   x:02b4=0x00   x:02b5=0x00   x:02b6=0x00   x:02b7=0x00   x:02b8=0x00   x:02b9=0x00   x:02ba=0x00   x:02bb=0x00   x:02bc=0x00   x:02bd=0x00   x:02be=0x00   x:02bf=0x00   x:02c0=0x00   x:02c1=0x00   x:02c2=0x00   x:02c3=0x00   x:02c4=0x00   x:02c5=0x00   x:02c6=0x00   x:02c7=0x00   stacklen is 252lp1 :012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678lp1 is oklp2 :abcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghilp2 is oklp3 is okx:01c8=0x00   x:01c9=0x00   x:01ca=0x00   x:01cb=0x2C   x:01cc=0x00   x:01cd=0x00   x:01ce=0x00   x:01cf=0x00   x:01d0=0x00   x:01d1=0x00   x:01d2=0x00   x:01d3=0x00   x:01d4=0x00   x:01d5=0x00   x:01d6=0x00   x:01d7=0x00   x:01d8=0x00   x:01d9=0x00   x:01da=0x00   x:01db=0x00   x:01dc=0x00   x:01dd=0x00   x:01de=0x00   x:01df=0x00   x:01e0=0x00   x:01e1=0x00   x:01e2=0x00   x:01e3=0x00   x:01e4=0x00   x:01e5=0x00   x:01e6=0x00   x:01e7=0x00   x:01e8=0x00   x:01e9=0x00   x:01ea=0x00   x:01eb=0x00   x:01ec=0x00   x:01ed=0x00   x:01ee=0x00   x:01ef=0x00   x:01f0=0x00   x:01f1=0x00   x:01f2=0x00   x:01f3=0x00   x:01f4=0x00   x:01f5=0x00   x:01f6=0x00   x:01f7=0x00   x:01f8=0x00   x:01f9=0x00   x:01fa=0x00   x:01fb=0x64   x:01fc=0x00   x:01fd=0x00   x:01fe=0x00   x:01ff=0x00   x:0200=0x00   x:0201=0x00   x:0202=0x00   x:0203=0x00   x:0204=0x00   x:0205=0x00   x:0206=0x00   x:0207=0x00   x:0208=0x00   x:0209=0x00   x:020a=0x00   x:020b=0x00   x:020c=0x00   x:020d=0x00   x:020e=0x00   x:020f=0x00   x:0210=0x00   x:0211=0x00   x:0212=0x00   x:0213=0x00   x:0214=0x00   x:0215=0x00   x:0216=0x00   x:0217=0x00   x:0218=0x00   x:0219=0x00   x:021a=0x00   x:021b=0x00   x:021c=0x00   x:021d=0x00   x:021e=0x00   x:021f=0x00   x:0220=0x00   x:0221=0x00   x:0222=0x00   x:0223=0x00   x:0224=0x00   x:0225=0x00   x:0226=0x00   x:0227=0x00   x:0228=0x00   x:0229=0x00   x:022a=0x00   x:022b=0x00   x:022c=0x00   x:022d=0x00   x:022e=0x00   x:022f=0x00   x:0230=0x00   x:0231=0x00   x:0232=0x00   x:0233=0x00   x:0234=0x00   x:0235=0x00   x:0236=0x00   x:0237=0x00   x:0238=0x00   x:0239=0x00   x:023a=0x00   x:023b=0x00   x:023c=0x00   x:023d=0x00   x:023e=0x00   x:023f=0x00   x:0240=0x00   x:0241=0x00   x:0242=0x00   x:0243=0x00   x:0244=0x00   x:0245=0x00   x:0246=0x00   x:0247=0x00   x:0248=0x00   x:0249=0x00   x:024a=0x00   x:024b=0x00   x:024c=0x00   x:024d=0x00   x:024e=0x00   x:024f=0x00   x:0250=0x00   x:0251=0x00   x:0252=0x00   x:0253=0x00   x:0254=0x00   x:0255=0x00   x:0256=0x00   x:0257=0x00   x:0258=0x00   x:0259=0x00   x:025a=0x00   x:025b=0x00   x:025c=0x00   x:025d=0x00   x:025e=0x00   x:025f=0x00   x:0260=0x00   x:0261=0x00   x:0262=0x00   x:0263=0x64   x:0264=0x30   x:0265=0x31   x:0266=0x32   x:0267=0x33   x:0268=0x34   x:0269=0x35   x:026a=0x36   x:026b=0x37   x:026c=0x38   x:026d=0x39   x:026e=0x30   x:026f=0x31   x:0270=0x32   x:0271=0x33   x:0272=0x34   x:0273=0x35   x:0274=0x36   x:0275=0x37   x:0276=0x38   x:0277=0x39   x:0278=0x30   x:0279=0x31   x:027a=0x32   x:027b=0x33   x:027c=0x34   x:027d=0x35   x:027e=0x36   x:027f=0x37   x:0280=0x38   x:0281=0x39   x:0282=0x30   x:0283=0x31   x:0284=0x32   x:0285=0x33   x:0286=0x34   x:0287=0x35   x:0288=0x36   x:0289=0x37   x:028a=0x38   x:028b=0x39   x:028c=0x30   x:028d=0x31   x:028e=0x32   x:028f=0x33   x:0290=0x34   x:0291=0x35   x:0292=0x36   x:0293=0x37   x:0294=0x38   x:0295=0x39   x:0296=0x30   x:0297=0x31   x:0298=0x32   x:0299=0x33   x:029a=0x34   x:029b=0x35   x:029c=0x36   x:029d=0x37   x:029e=0x38   x:029f=0x39   x:02a0=0x30   x:02a1=0x31   x:02a2=0x32   x:02a3=0x33   x:02a4=0x34   x:02a5=0x35   x:02a6=0x36   x:02a7=0x37   x:02a8=0x38   x:02a9=0x39   x:02aa=0x30   x:02ab=0x31   x:02ac=0x32   x:02ad=0x33   x:02ae=0x34   x:02af=0x35   x:02b0=0x36   x:02b1=0x37   x:02b2=0x38   x:02b3=0x39   x:02b4=0x30   x:02b5=0x31   x:02b6=0x32   x:02b7=0x33   x:02b8=0x34   x:02b9=0x35   x:02ba=0x36   x:02bb=0x37   x:02bc=0x38   x:02bd=0x39   x:02be=0x30   x:02bf=0x31   x:02c0=0x32   x:02c1=0x33   x:02c2=0x34   x:02c3=0x35   x:02c4=0x36   x:02c5=0x37   x:02c6=0x38   x:02c7=0x00   stacklen is 44
上面的函数只是简单的实现了内存的分配,是否能应用在真正的项目中还未可知;







0 0
原创粉丝点击