请选择 进入手机版 | 继续访问电脑版

安富莱电子论坛

 找回密码
 立即注册

扫一扫,访问微社区

查看: 334|回复: 0
收起左侧

动态内存分配

[复制链接]

19

主题

94

帖子

152

积分

初级会员

积分
152
QQ
发表于 2018-7-10 22:53:43 | 显示全部楼层 |阅读模式
本帖最后由 雷鹏 于 2018-7-10 22:58 编辑

#include <rtthread.h>
/* 线程TCB和栈 */
struct rt_thread thread1;
char thread1_stack[512];
/* 线程入口 */
void thread1_entry( void* parameter )
{
  int i;
  char *ptr[20]; /* 用于放置20个分配内存块的指针 */
  /* 对指针清零 */
  for ( i = 0; i < 20; i ++ ) ptr
= RT_NULL;
  while( 1 )
  {
    for ( i = 0; i < 20; i++ )
    {
      /* 每次分配(1 << i)大小字节数的内存空间 */
      ptr
= rt_malloc( 1 << i );
      /* 如果分配成功 */
      if ( ptr
!= RT_NULL )
      {
                           
        rt_kprintf( "get memory  %d: 0x%x\n",i, ptr
);
        /* 释放内存块 */
        rt_free( ptr
);
        ptr
= RT_NULL;
      }
    }
  }
}
int rt_application_init()
{
  /* 初始化线程对象 */
  rt_thread_init( &thread1,
                  "thread1",
                  thread1_entry, RT_NULL,
                  &thread1_stack[0], sizeof( thread1_stack ),
                  20, 100 );
  rt_thread_startup( &thread1 );
  return 0;
}


承接嵌入式项目开发,相关技术交流。STM32,物联网,工业控制方向。QQ/微信/手机   13554527850
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|手机版|安富莱电子论坛 ( 鄂ICP备09023347号,公安机关备案号42010602000201 )

GMT+8, 2019-7-16 02:30 , Processed in 0.152517 second(s), 23 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表