【郝斌数据结构自学笔记】10-11_跨函数使用内存讲解及其示例
来源:互联网 发布:windows 8 whql 编辑:程序博客网 时间:2024/04/28 21:10
10_跨函数使用内存讲解及其示例
CASE 1
int f();
int main(void)
{
inti=10;
i=f();
printf(“i=%d\n”,i);
for(i=0;i<2000;++i)
f();
return0;
}
int f()
{
intj=20;
returnj;
}
CASE 2
main ()
{
int*p;
fun(&p);
...
}
int fun (int **q)
{
ints; //s为局部变量。调用完毕后s就没有了,最终p没有指向一个合法的整型单元
*q=&s;
}
CASE 3
main()
{
int*p;
fun(&p);
...
}
int fun(int **q)
{
*q=(int*)malloc(4); //返回4个字节,只取第1个字节地址赋给*q,*q==p。执行完后,因为没有free(),内存没有释放。如果没有free(),整个程序彻底终止时才能释放
}
程序内部类定义方法
A aa=new A();
A *pa=(A*)malloc(sizeof(A));
CASE 4
#include<stdio.h>
#include<malloc.h>
struct Student
{
intsid;
intage;
}
struct Student * CreatStudent(void);
void ShowStudent(struct Student *);
int main(void)
{
structStudent *ps;
ps=CreatStudent();
ShowStudent(ps);
return0;
}
struct Student * CreatStudent(void)
{
structStudent *P=(struct Student *)malloc(sizeof(struct Student));
p->sid=99;
p->age=88;
return p;
}
void ShowStudent(struct Student *pst)
{
printf(“%d%d\n”,pst->sid,pst->age);
}
11_复习
- 【郝斌数据结构自学笔记】10-11_跨函数使用内存讲解及其示例
- 郝斌数据结构 10 跨函数使用内存讲解及其示例
- 【郝斌数据结构自学笔记】35-46_队列的定义、分类_链式队列伪算法的讲解_循环队列伪算法的讲解
- 【郝斌数据结构自学笔记】8_结构体的使用概述
- 【郝斌数据结构自学笔记】9_malloc()动态分配内存概述
- 【郝斌数据结构自学笔记】75-78_链式二叉树遍历具体程序演示_5种常用排序概述和快速排序详细讲解_再次讨论什么是数据结构_再次讨论到底什么是泛型
- 【郝斌数据结构自学笔记】53-56_一个函数为什么可以自己调用自己_递归必须满足三个条件_循环和递归的比较
- 【郝斌数据结构自学笔记】49-52_递归的定义和不同函数之间相互调程序举例_一个函数自己调自己程序举例
- 06-数据结构_预备知识-跨函数使用内存
- 【郝斌数据结构自学笔记】5_预备知识_指针_2
- 数据结构_郝斌老师自学大纲
- 【郝斌数据结构自学笔记】1-4_数据结构定义及特点
- 【郝斌数据结构自学笔记】12-13_连续存储数组的算法演示
- 【郝斌数据结构自学笔记】14-15_链表的重要性_typedef的用法
- 【郝斌数据结构自学笔记】6-7_所有的指针变量只占4个子节,如何通过函数修改实参的值
- 【郝斌数据结构自学笔记】27-29_链表插入和删除算法的演示_复习
- 【郝斌数据结构自学笔记】47-49_循环队列程序演示 _ 队列的具体应用
- 【郝斌数据结构自学笔记】30-34_栈的定义_栈的分类_栈程序演示_栈的日常具体应用
- C语言函数调用及栈帧分析
- 深度学习为何起作用——关键解析和鞍点
- JS代码放在head和body的区别
- 外观模式(Facade Pattern)或门面模式
- 设计模式 抽象工厂模式(Abstract Factory Pattern)
- 【郝斌数据结构自学笔记】10-11_跨函数使用内存讲解及其示例
- 比较全面的gdb调试命令
- ios 长时间后台
- C/C++内存管理详解
- KDnuggets热门深度学习工具排行:Pylearn2 居首,Caffe第三
- List对象排序 遇到的问题
- ubuntu 交叉编译x264 faac ffmpeg
- 欢迎使用CSDN-markdown编辑器
- Fresco正传(5):请求产生和发出请求