QQ群里关于动态内存的问题
2012-07-19 13:54
330 查看
程序1. #include "iostream.h" #include "stdlib.h" int* b=NULL; void fuck(int* a); void main() { b = (int*) malloc(2); if(b) { *b=1; } cout<<b<<endl; fuck(b); } void fuck(int *a ) { free(a); }
#include "iostream.h" #include "stdlib.h" int* b=NULL; void fuck(int* a); void main() { b = (int*) malloc(2); // 直接用2作为分配长度不可靠,16位编译器下int占2字节,32位编译器下int占4字节…… if(b) { b=1; // 向指针赋整数常量不可靠,除非确实知道地址的具体值 } cout<<b<<endl; fuck(b); } void fuck(int *a ) { free(a); } 程序2 b = (int*) malloc(4);
#include "iostream.h" #include "stdlib.h" int* b=NULL; void fuck(int* a); void main() { fuck(b); *b = 1; cout<<b<<endl; free(b); } void fuck(int*a) { a = (int*) malloc(sizeof(int)); }
#include "iostream.h" #include "stdlib.h" int* b=NULL; void fuck(int* a); void main() { fuck(b); *b = 1; cout<<b<<endl; free(b); } void fuck(int*a) { a = (int*) malloc(sizeof(int)); // 函数参数是传值的,也就是说参数的变化不会影响到实参,因此这里分配到的空间的地址不会存到全局的b中 }
复制搜索
复制搜索
相关文章推荐
- 关于malloc申请的动态内存的问题
- 关于用函数指针参数申请动态内存的问题
- 关于单机游戏动态内存基址问题
- 关于动态内存分配与字符串操纵的问题总结
- 关于指针和内存的几个问题
- 关于结构体内存对齐的问题
- 关于MySQL的整型数据的内存溢出问题的应对方法
- 关于返回指针以及动态申请内存
- 基于jquery的关于动态创建DOM元素的问题
- 关于Spring3 + Mybatis3整合时,多数据源动态切换的问题(二)
- C风格字符串动态分配和撤销内存报错的问题
- 智能指针(上)-----动态管理内存问题,auto_ptr的模拟实现
- 『EXP2』关于在函数内部分配内存时需要注意的问题
- 关于android内存泄露的问题
- 关于jQuery动态加载元素之后绑定事件无法触发的问题
- 关于IOS UITableView的动态高度问题
- 关于MSSQL占用过多内存的问题
- 关于为结构体指针申请内存的问题
- 关于opencv中Vector内存释放或者元素清空的问题
- 关于面试题中出现的内存传递问题