冯诺依曼结构是:数据和代码放在一起。
哈佛结构是:数据和代码分开存在。
内存管理
fiLO 先进后出 栈
FIFO 先进先出 队列
栈的特点是入口即出口,另一个口是堵死的,所以先进去的后出来
队列的特点是入口和出口都有,必须从入口进去,从出口出来,所以先进去的必须先出来,否则就堵住后面的。

堆内存释放时最简单,直接调用free释放即可。 void free(void *ptr);
堆内存申请时,有3个可选择的类似功能的函数:malloc, calloc, realloc
void *malloc(size_t size);
void *calloc(size_t nmemb, size_t size); // nmemb个单元,每个单元size字节
void *realloc(void *ptr, size_t size); // 改变原来申请的空间的大小的

譬如要申请10个int元素的内存:
malloc(40); malloc(10*sizeof(int));
calloc(10, 4); calloc(10, sizeof(int));

栈例子

#include<stdio.h>
#include<stdlib.h>
typedef struct Lnode {
int data;
struct Lnode *next;
}Lnode;
//初始化链栈
void initStack(Lnode *ln) {
ln = (Lnode *)malloc(sizeof(Lnode));
ln->next = NULL;
}
//判断链栈是否为空
int StackEmpty(Lnode *ln) {
return (ln->next == NULL ? : );
}
//进栈
void push(Lnode *ln, int x) {
Lnode *p;
p = (Lnode *)malloc(sizeof(Lnode));
if (p == NULL) {
printf("ERROR");
exit();
}
p->next = NULL;
p->data = x;
p->next = ln->next;
ln->next = p;
}
//出栈
int pop(Lnode *ln, int *x) {
Lnode *p = ln->next;
if (p == NULL) {
return ;
}
*x = p->data;
ln->next = p->next;
free(p);
return ;
}
void printStack(Lnode *ln) {
Lnode *p = ln->next;
while (p != NULL) {
printf("%d\n", p->data);
p = p->next;
}
}
void main() {
Lnode ln;
int x;
initStack(&ln);
push(&ln, );
push(&ln, );
push(&ln, );
push(&ln, );
pop(&ln, &x);
printf("出栈元素为:%d\n", x);
printStack(&ln); }

最新文章

  1. SQL Server 中master..spt_values的应用
  2. 【JAVA并发编程实战】7、日志服务
  3. 前端网站helper
  4. 【bzoj1060】[ZJOI2007]时态同步
  5. c#获取枚举
  6. Javac不是内部或外部指令
  7. Bzoj 1562: [NOI2009]变换序列 匈牙利算法,二分图匹配
  8. Android开发之使用广播监听网络状态变化
  9. Python 学习之urllib模块---用于发送网络请求,获取数据
  10. POJ3273:Monthly Expense(二分)
  11. hdu 4031 Attack 线段树
  12. ios开发之滑动长图截全屏应用
  13. QT第三天学习
  14. 《重构--改善既有代码的设计》总结or读后感:重构是程序员的本能
  15. 干货,一文带你超详细了解 Filter 的原理及应用
  16. 使用kubeadm平滑地升级kubenetes集群(v1.10.2到v1.10.3)
  17. 校园电商项目4——SSM各项配置
  18. PHP金额工具类之将阿利伯数字转换为大写中文数字
  19. 【Core】.NET Core 部署( Docker + CentOS)
  20. 咏南Mormot中间件接口

热门文章

  1. adb 获取平台号
  2. VS激活(Visual Studio)
  3. leetcode菜鸡斗智斗勇系列(4)--- 单一数字的乘积和总合的减法
  4. jar包要读取的资源文件路径问题
  5. Webpack 一些概念
  6. Elon Mask 写作常见的三种错误
  7. laravel上传至服务器上出现Whoops, looks like something went wrong.
  8. 「SAP技术」A项目关联公司间退货STO流程
  9. 从0系统学Android--3.7 聊天界面编写
  10. SpringBoot项目下的JUnit测试