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

硬汉嵌入式论坛

 找回密码
 立即注册
查看: 1623|回复: 0
收起左侧

动态内存分配

[复制链接]

82

主题

390

回帖

656

积分

金牌会员

积分
656
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  408137104
回复

使用道具 举报

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

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-3-28 19:59 , Processed in 0.242899 second(s), 24 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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