雷鹏 发表于 2018-7-10 22:53:43

动态内存分配

本帖最后由 雷鹏 于 2018-7-10 22:58 编辑

#include <rtthread.h>
/* 线程TCB和栈 */
struct rt_thread thread1;
char thread1_stack;
/* 线程入口 */
void thread1_entry( void* parameter )
{
int i;
char *ptr; /* 用于放置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, sizeof( thread1_stack ),
                  20, 100 );
rt_thread_startup( &thread1 );
return 0;
}

页: [1]
查看完整版本: 动态内存分配