C
Mr.Emiya
既然决定要学习,那就认真点吧
展开
-
两种常见的内存管理方法:堆和内存池
在程序运行过程中,可能产生一些数据,例如,串口接收的数据,ADC采集的数据。若需将数据存储在内存中,以便进一步运算、处理,则应为其分配合适的内存空间,数据处理完毕后,再释放相应的内存空间。为了便于内存的分配和释放,AWorks提供了两种内存管理工具:堆和内存池。 本文为《面向AWorks框架和接口的编程(上)》第三部分软件篇——第9章内存管理——第1~2小节:堆管理器和内存池。 本章导...转载 2019-04-27 09:44:26 · 5748 阅读 · 0 评论 -
堆栈在C语言中的定义(单片机的中堆栈相当于栈)
转载自:https://blog.csdn.net/zhjmyx/article/details/71190946在计算机领域,堆栈是一个不容忽视的概念,我们编写的C语言程序基本上都要用到。但对于很多的初学着来说,堆栈是一个很模糊的概念。堆栈:一种数据结构、一个在程序运行时用于存放的地方,这可能是很多初学者的认识,因为我曾经就是这么想的和汇编语言中的堆栈一词混为一谈。我身边的一些编程的朋友以及在...转载 2019-05-28 11:10:15 · 395 阅读 · 0 评论 -
关于堆栈的讲解
转载自:https://blog.csdn.net/yingms/article/details/53188974一、预备知识—程序的内存分配一个由c/C++编译的程序占用的内存分为以下几个部分 1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。 2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可...转载 2019-05-28 10:55:15 · 318 阅读 · 0 评论 -
C语言:static作用(修饰函数、局部变量、全局变量)
本文转载自 https://blog.csdn.net/qq_37858386/article/details/79064900C语言:static作用(修饰函数、局部变量、全局变量)一、 static全局变量与普通的全局变量有什么区别 ? 全局变量(外部变量)的说明之前再冠以static 就构成了静态的全局变量。 全局变量本身就是静态存储方式, 静态全局变量当然也是...转载 2019-05-27 17:35:36 · 363 阅读 · 0 评论 -
malloc函数分配内存失败的原因及解决方法
转载自:https://blog.csdn.net/lighthear/article/details/70146602 先说结论malloc()函数分配内存失败的原因: 1. 内存不足。 2. 在前面的程序中出现了内存的越界访问,导致malloc()分配函数所涉及的一些信息被破坏。下次再使用malloc()函数申请内存就会失败,返回空指针NULL(0)。...转载 2019-05-25 21:45:11 · 3865 阅读 · 1 评论 -
memcpy与memmove在功能上的区别
转载自:https://blog.csdn.net/caowei840701/article/details/8491836关于memcpy和memmove两个c标准库函数,其功能都是将一块内存区域中的指定大小内容复制到目标内存中,在翻阅c标准库实现的源代码我们发现他们是有区别的。首先看memcpy的实现: void * __cdecl memcpy ( void * dst, ...转载 2019-05-25 12:06:42 · 158 阅读 · 0 评论 -
sizeof()计算结构体的大小
转载自https://blog.csdn.net/qq_37858386/article/details/75909852简要说明:结构体成员按照定义时的顺序依次存储在连续的内存空间,但是结构体的大小并不是简单的把所有成员大小相加,而是遵循一定的规则,需要考虑到系统在存储结构体变量时的地址对齐问题。一、没有成员的结构体占用的空间是多少个字节? 答案是:1...转载 2019-05-07 21:43:02 · 3948 阅读 · 0 评论 -
C语言中结构体的位域(bit-fields)
C语言中结构体的位域(bit-fields) 转自:http://blog.sina.com.cn/s/blog_6240b5980100tcba.html 有些信息在存储时,并不需要占用一个完整的字节, 而只需占几个或一个二进制位。例如在存放一个开关量时,只有0和1 两种状态, 用一位二进位即可。为了节省存储空...转载 2019-04-28 22:38:17 · 370 阅读 · 0 评论 -
C语言实现链表结构(一)链表的建立
版权声明:本文为博主原创文章,转载请务必注明出处和作者,谢谢合作! https://blog.csdn.net/zhanshen112/article/details/80720251 链表产生的原因:对于比较初级的编程学习者,在存储数据时,比较熟悉的是利用数组进行存储。但是静态数...转载 2019-04-24 11:59:46 · 925 阅读 · 1 评论 -
C语言实现链表结构(二)链表的优化
版权声明:本文为转载文章,转载请务必注明出处和作者,谢谢合作! https://blog.csdn.net/zhanshen112/article/details/80721827 上一篇文章,已经初步会构造“链表”这种数据数据结构,本文主要讲一下构造的链表如何进行优化。链表代码如...转载 2019-04-24 12:19:47 · 342 阅读 · 0 评论 -
C语言实现链表结构(三)链表节点的查找、删除、增加
版权声明:本文为转载文章,转载请务必注明出处和作者,谢谢合作! https://blog.csdn.net/zhanshen112/article/details/80722537 #include <stdio.h> #include <std...转载 2019-04-24 19:27:37 · 1735 阅读 · 0 评论 -
栈区,堆区,全局区,文字常量区,程序代码区 详解
一、预备知识—程序的内存分配 一个由C/C++编译的程序占用的内存分为以下几个部分 1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其&...转载 2019-04-26 22:10:18 · 235 阅读 · 0 评论 -
关于c语言内存分配,malloc,free,和段错误,内存泄露
转载自https://www.cnblogs.com/wuchanming/p/4440872.html 关于c语言内存分配,malloc,free,和段错误,内存泄露 1. C语言的函数malloc和free (1) 函数malloc和free在头文件<stdlib.h>中的原型及参数...转载 2019-04-27 09:10:41 · 906 阅读 · 0 评论 -
重要的#pragma声明
原文出处:龙丘推荐必读基础知识: 重要的#pragma声明http://www.znczz.com/thread-21542-1-1.html 重要的#pragma声明#pragma声明是基于单片机开发的特点而对标准C语法的一个扩充。它对充分利用单片机内各类有限的资源起到不可或缺的关键作用。下面简单介绍几个最常用的#pragma声明。1 #pragma DATA_SEG定义变量...转载 2019-06-02 15:17:47 · 498 阅读 · 0 评论