跨函数使用内存
来源:互联网 发布:成都移动网络优化中心 编辑:程序博客网 时间:2024/05/02 00:38
1.要想通过无返回值的函数来修改实参的值,必须传递地址
void f(int* p)
{
*p = 100;
}
int main()
{
int a = 9;
f(&a);//无论是什么类型的变量,此处必须传递地址才可通过函数修改其值。表示p = &a,那么*p就等价于a
printf("a = %d\n", a);
return 0;
}
2.跨函数使用内存
题目:下程序中,能够通过调用函数fun,使main函数中的指针变量p指向一个合法的整型单元的是
A main()
{
int* p;
fun(p); //此处没传递p的地址,所以肯定错误
...
}
int fun(int* q)
{
int s;
q = &s;
}
B main()
{
int* p;
fun(&p);
...
}
int fun(int** q)
{
int s;
*q = &s;
}
//看似正确,其实错误。p的地址传给了q,则*q就等价于p,p指向了s,但是变量s只在fun函数内部有效,fun函数执行完后,s这块内存就被释放,不是一个合法的整型单元
C main()
{
int* p;
fun(&p);
...
}
int fun(int** q)
{
*q = (int*)malloc(sizeof(int));//正确,malloc分配的内存必须由free进行主动释放
}
D main()
{
int* p;
fun(p);//没加取地址,直接判断错误
...
}
int fun(int* q)
{
q = (int*)malloc(sizeof(int));
}
- 跨函数使用内存
- 跨函数使用内存
- 跨函数使用内存
- 跨函数使用内存问题
- 跨函数使用内存,动态实现
- C语言 跨函数使用内存.
- 静态内存不能跨函数使用
- 静态变量不能跨函数使用内存
- 动态变量可以跨函数使用内存
- 动态内存可以跨函数使用
- C语言:跨函数使用内存
- 使用虚函数节省内存
- C语言学习笔记(19跨函数使用内存)
- 06-数据结构_预备知识-跨函数使用内存
- 补.从零开始学习C语言--跨函数使用内存
- (四)malloc动态内存分配以及跨函数使用内存
- 显示程序使用最大内存函数
- (内存共享)shmat函数的使用
- java调用python脚本之tomcat中
- 【ACMclub周赛5】Problem D——拼火柴
- 【unity3d脚本】Easy login / register script
- eclipse中 启动tomcat时报Multiple Contexts have a path of "/shopping".
- Servlet 工程 web.xml 中的 servlet 和 servlet-mapping 标签
- 跨函数使用内存
- Python和正则表达式(未完)
- php.ini中文版详解
- VB.NET 多次读取ACCESS 建立树形时出现 链接关闭错误
- Android 布局
- 学生管理系统调试错误总结
- 理解索引
- 五种常见的 PHP 设计模式
- 【算法王道】n阶乘的位数