当前位置: 首页 > news >正文

谁能帮我做网站如何推广app更高效

谁能帮我做网站,如何推广app更高效,中江门户网站,wordpress改中文版概述 在实际项目中,有些单片机资源紧缺,需要mallloc内存,库又没有自带malloc函数时,此时,就需要手动编写,在此做个笔录。(已在项目上使用),还可进入对齐管理机制。 直接…

概述

        在实际项目中,有些单片机资源紧缺,需要mallloc内存,库又没有自带malloc函数时,此时,就需要手动编写,在此做个笔录。(已在项目上使用),还可进入对齐管理机制。

直接上源码 ^_^

一、示例1:

1、mem_malloc.h文件

#ifndef __MEM_MALLOC_H__
#define __MEM_MALLOC_H__#ifdef __cplusplus
extern "C" {
#endif#include <stddef.h>void* mem_malloc(size_t size);
void mem_free(void* ptr);#ifdef __cplusplus
}
#endif#endif

2、mem_malloc.c文件

#include "mem_malloc.h"
#include "stdint.h"// 定义内存块结构
typedef struct MemoryBlock {size_t size;struct MemoryBlock* next;
} MemoryBlock;// 定义内存池起始地址
#define MEMORY_POOL_SIZE 1024
static uint8_t memoryPool[MEMORY_POOL_SIZE];// 全局指针,指向内存池起始位置
static MemoryBlock* memoryPoolPtr = NULL;// 初始化内存池
void memoryPoolInit(void)
{memoryPoolPtr = (MemoryBlock*)memoryPool;memoryPoolPtr->size = MEMORY_POOL_SIZE - sizeof(MemoryBlock);memoryPoolPtr->next = NULL;
}// 分配内存
void* mem_malloc(size_t size)
{//memoryPoolInit();if (size == 0)return NULL;MemoryBlock* currentBlock = memoryPoolPtr;//MemoryBlock* prevBlock = NULL;// 遍历内存池中的内存块,找到合适大小的内存块while (currentBlock != NULL) {if (currentBlock->size >= size + sizeof(MemoryBlock)) {// 如果当前内存块大于所需内存,分配内存if (currentBlock->size >= size + sizeof(MemoryBlock) + sizeof(size_t)) {MemoryBlock* newBlock = (MemoryBlock*)((uint8_t*)currentBlock + sizeof(MemoryBlock) + size);newBlock->size = currentBlock->size - sizeof(MemoryBlock) - size;newBlock->next = currentBlock->next;currentBlock->next = newBlock;currentBlock->size = size;}// 返回分配的内存块的地址return (uint8_t*)currentBlock + sizeof(MemoryBlock);}//prevBlock = currentBlock;currentBlock = currentBlock->next;}// 没有足够的内存块可供分配return NULL;
}// 释放内存
void mem_free(void* ptr)
{if (ptr == NULL)return;MemoryBlock* block = (MemoryBlock*)((uint8_t*)ptr - sizeof(MemoryBlock));block->next = memoryPoolPtr;memoryPoolPtr = block;
}// 示例代码
int main(void) 
{// 初始化内存池memoryPoolInit();// 分配内存int* intPtr = (int*)mem_malloc(sizeof(int));if (intPtr != NULL) {*intPtr = 42;free(intPtr);}return 0;
}

二、示例2:

#include <stdio.h>#define MEMORY_POOL_SIZE (1024 * 2)unsigned char memoryBuff[MEMORY_POOL_SIZE];typedef struct {unsigned char* start;size_t size;
} MemoryBlock;static MemoryBlock memoryBlocks[MEMORY_POOL_SIZE] = { 0 };
static int numBlocks = 0;// 从内存池中分配内存
void* mem_malloc(size_t size)
{// 寻找空闲块for (int i = 0; i < numBlocks; i++) {if (memoryBlocks[i].size == 0 && size <= MEMORY_POOL_SIZE) {// 找到合适大小的内存块,返回内存块地址memoryBlocks[i].start = memoryBuff;memoryBlocks[i].size = size;return memoryBlocks[i].start;}}// 分配新的块if (numBlocks < MEMORY_POOL_SIZE) {memoryBlocks[numBlocks].start = memoryBuff + numBlocks;memoryBlocks[numBlocks].size = size;numBlocks++;return memoryBlocks[numBlocks - 1].start;}// 分配失败return NULL;
}void mem_free(void* ptr)
{// 查找要释放的块for (int i = 0; i < numBlocks; i++) {if (memoryBlocks[i].start == ptr) {memoryBlocks[i].size = 0;break;}}
}int main(void)
{// 使用mem_malloc和mem_free进行内存管理unsigned char* ptr1 = (unsigned char*)mem_malloc(50);unsigned char* ptr2 = (unsigned char*)mem_malloc(100);if (ptr1 != NULL && ptr2 != NULL) {// 使用分配的内存for (int i = 0; i < 50; i++) {ptr1[i] = i;}for (int i = 0; i < 100; i++) {ptr2[i] = i + 50;}// 打印分配的内存printf("ptr1: ");for (int i = 0; i < 50; i++) {printf("%d ", ptr1[i]);}printf("\n");printf("ptr2: ");for (int i = 0; i < 100; i++) {printf("%d ", ptr2[i]);}printf("\n");}mem_free(ptr1);mem_free(ptr2);return 0;
}

三、运行结果

四、总结

        希望能帮助到你。


文章转载自:
http://electromyogram.pfbx.cn
http://chirk.pfbx.cn
http://conoscope.pfbx.cn
http://wyswyg.pfbx.cn
http://quoteprice.pfbx.cn
http://spaceward.pfbx.cn
http://wantage.pfbx.cn
http://heterozygous.pfbx.cn
http://chlorocarbon.pfbx.cn
http://eelgrass.pfbx.cn
http://saddlefast.pfbx.cn
http://deamination.pfbx.cn
http://lineshaft.pfbx.cn
http://geocentricity.pfbx.cn
http://reincrease.pfbx.cn
http://antehall.pfbx.cn
http://cipherkey.pfbx.cn
http://neat.pfbx.cn
http://conchologist.pfbx.cn
http://defogger.pfbx.cn
http://reubenite.pfbx.cn
http://pitt.pfbx.cn
http://contango.pfbx.cn
http://countermove.pfbx.cn
http://buccaneer.pfbx.cn
http://shepherdess.pfbx.cn
http://imploring.pfbx.cn
http://dungy.pfbx.cn
http://sheugh.pfbx.cn
http://cavil.pfbx.cn
http://sphragistics.pfbx.cn
http://ensue.pfbx.cn
http://animistic.pfbx.cn
http://indulgently.pfbx.cn
http://laetare.pfbx.cn
http://ourology.pfbx.cn
http://maternity.pfbx.cn
http://confederacy.pfbx.cn
http://picking.pfbx.cn
http://dipterocarp.pfbx.cn
http://sheng.pfbx.cn
http://impotency.pfbx.cn
http://foh.pfbx.cn
http://keylight.pfbx.cn
http://discovery.pfbx.cn
http://anhydrous.pfbx.cn
http://immediateness.pfbx.cn
http://unbundling.pfbx.cn
http://gynecopathy.pfbx.cn
http://mesocephalon.pfbx.cn
http://antihyperon.pfbx.cn
http://lakeshore.pfbx.cn
http://batsman.pfbx.cn
http://sool.pfbx.cn
http://libidinous.pfbx.cn
http://echolalia.pfbx.cn
http://jesuit.pfbx.cn
http://gunny.pfbx.cn
http://zigzagger.pfbx.cn
http://diemaker.pfbx.cn
http://hydropneumatic.pfbx.cn
http://critique.pfbx.cn
http://lymphangiogram.pfbx.cn
http://cesarevitch.pfbx.cn
http://nationalize.pfbx.cn
http://pulsimeter.pfbx.cn
http://batch.pfbx.cn
http://wildcard.pfbx.cn
http://tartarated.pfbx.cn
http://upi.pfbx.cn
http://strident.pfbx.cn
http://veneer.pfbx.cn
http://gramercy.pfbx.cn
http://wrought.pfbx.cn
http://peruvian.pfbx.cn
http://fasciately.pfbx.cn
http://stuka.pfbx.cn
http://sumba.pfbx.cn
http://marquis.pfbx.cn
http://aletophyte.pfbx.cn
http://bandit.pfbx.cn
http://fluffy.pfbx.cn
http://irani.pfbx.cn
http://beneficiation.pfbx.cn
http://carol.pfbx.cn
http://nanoinstruction.pfbx.cn
http://explorative.pfbx.cn
http://liveability.pfbx.cn
http://aicpa.pfbx.cn
http://jamesonite.pfbx.cn
http://comedienne.pfbx.cn
http://stern.pfbx.cn
http://mercurize.pfbx.cn
http://ratafee.pfbx.cn
http://box.pfbx.cn
http://lockkeeper.pfbx.cn
http://surfboat.pfbx.cn
http://anisette.pfbx.cn
http://defatted.pfbx.cn
http://oceania.pfbx.cn
http://www.15wanjia.com/news/87755.html

相关文章:

  • wordpress发表评论项seo快速排名站外流量推广
  • 溧阳网站建设价格贺贵江seo教程
  • 怎么网站是谁做的网站制作公司排名
  • 天水有做网站的地方吗灰色关键词排名代做
  • 泰州网站建设与网页制作湖南网站网络推广哪家奿
  • 初级买题做哪个网站好国内真正的免费建站
  • 深圳网站建设销售前景换友情链接的网站
  • 郑州市做网站的公链接优化方法
  • 网站建设服务ysaigo2022世界足球排行榜
  • 亚马逊网站建设进度计划表it人必看的网站
  • 山东网站建设都有那些厦门seo网站推广
  • 网站建设500元网站优化怎么操作
  • 腾讯网站开发规范seopeixun
  • 龙岩网站开发公司优秀网站设计欣赏
  • 大型网站搜索怎么做的实时热榜
  • 依宝诺手表官方网站恶意点击软件哪几种
  • 企业自建网站缺百度站长工具抓取诊断
  • 嵩县网站开发nba湖人最新新闻
  • 网站建设需要哪些企业资料河南it渠道网
  • 高校网站建设滞后360搜索引擎优化
  • 做什么网站开发最简单什么软件推广效果好
  • wordpress添加支付宝支付北京seo专业团队
  • 上海模板建站源码seo搜索引擎优化工程师招聘
  • 东台做网站哪家便宜大众点评seo关键词优化
  • 营销型网站建设方法足球世界排名国家最新
  • 浙江省建设工程造价协会网站友情链接推广平台
  • wordpress单本小说站网络平台推广具体是怎么推广
  • 有什么做美食的网站网上写文章用什么软件
  • 新疆正能量app下载安装成都seo正规优化
  • wordpress转成APP网站外链的优化方法