第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定

【九月打卡】第1天【養(yǎng)成記】嵌入式挑戰(zhàn)第1天 學(xué)習(xí)C語(yǔ)言中的堆區(qū)內(nèi)存管理

標(biāo)簽:
C 嵌入式

课程名称:

物联网/嵌入式工程师

课程章节(阶段一第三周1-5):

C语言的堆区内存管理课程链接

老师:

大白老师

课程内容:

C语言编译的内存是如何分配的,如何申请并释放堆区内存

学习笔记:

用到的库是<stdlib.h>
申请堆内存的函数malloc(),示例

int *p = (int *)malloc(sizeof(int));

释放堆内存的函数free(),示例

free(p);
p = NULL;

把s所指向内存区域的前n个字节,全部置为c的函数void *memset(void *s, int c, size_t n);示例

int *addr = NULL
memset(addr,0,sizeof(sizeof(int) * 10));

内存的使用原则:

  1. 需要使用多少内存就分配多少内存,不要过多分配

  2. 使用完以后一定要free()。我们自己申请多少,就要手动释放多少,要不然可能会造成内存泄漏

  3. 死循环的时候,内存空间没有及时的释放掉,CPU一直占用内存空间

  4. 当一个程序在操作系统中运行结束后,它运行过程中分配的内存都会被释放掉。

完整的示例代码:

#include <stdio.h>
#include <stdlib.h>

typedef struct{
  char name[20];
  int id;
  int score;
}s_t;

s_t *get_memeory_addr(){
  return (s_t *)malloc(sizeof(s_t));
}

void input_student(s_t *s){
  printf("please input name id score\n");
  gets(s->name);
  scanf("%d%d",&(s->id),&(s->score));
}

void output_student(s_t *s){
  printf("%s %d %d\n", s->name, s->id, s->score);
}

int main (int argc, char *argv[])
{
  s_t *s1 = get_memeory_addr();
  input_student(s1);
  output_student(s1);
  printf("未free前%p\n",s1);
  free(s1);
  printf("free后%p\n",s1);
  output_student(s1);
  s1 = NULL;
  printf("赋值NULL后%p\n",s1);
  return 0;
}

打卡:

图片描述

图片描述

图片描述

课程评价

老师通过画图与代码相结合让我们很清楚代码在内存中的存储位置,更好地理解每个

函数的作用是什么,什么时候使用这个函数。同时在问答群中能够及时的解决我提出

的问题,非常给力💪.

點(diǎn)擊查看更多內(nèi)容
TA 點(diǎn)贊

若覺(jué)得本文不錯(cuò),就分享一下吧!

評(píng)論

作者其他優(yōu)質(zhì)文章

正在加載中
  • 推薦
  • 評(píng)論
  • 收藏
  • 共同學(xué)習(xí),寫(xiě)下你的評(píng)論
感謝您的支持,我會(huì)繼續(xù)努力的~
掃碼打賞,你說(shuō)多少就多少
贊賞金額會(huì)直接到老師賬戶
支付方式
打開(kāi)微信掃一掃,即可進(jìn)行掃碼打賞哦
今天注冊(cè)有機(jī)會(huì)得

100積分直接送

付費(fèi)專欄免費(fèi)學(xué)

大額優(yōu)惠券免費(fèi)領(lǐng)

立即參與 放棄機(jī)會(huì)
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)

舉報(bào)

0/150
提交
取消