关于C++中结构体及其指针成员的内存分配和释放
2015-11-28 17:18
609 查看
typedef struct{
char *ip;
int port;
char *sn;
}clientUser;
static clientUser *users;
这样的结构体,成员指针或者分配内存,或者指向常量区,不然它们就都是野指针;分配内存的话,就要释放,分配内存的时候,是从外向里,即先分配结构体的指针,再分配成员指针,释放的时候,是从里向外,先释放成员指针,再释放结构体指针,顺序不能错的。总之每个malloc都要对应一个free,每一个new要对应一个delete!
char *ip;
int port;
char *sn;
}clientUser;
static clientUser *users;
这样的结构体,成员指针或者分配内存,或者指向常量区,不然它们就都是野指针;分配内存的话,就要释放,分配内存的时候,是从外向里,即先分配结构体的指针,再分配成员指针,释放的时候,是从里向外,先释放成员指针,再释放结构体指针,顺序不能错的。总之每个malloc都要对应一个free,每一个new要对应一个delete!
相关文章推荐
- c++ primer 8 标准IO库
- c++ primer 7 函数
- c++11 线程池系列之一 所需要的join_threads
- c++11 线程池系列之一 所需要的thread_safe_queue
- c++11 线程池系列之一 最简单的线程池
- 《C++ primer》英文第五版阅读笔记(二十一)——简单语句,语句范围和条件语句
- C++ 文件读取操作时,使文件指针重新指向文件开头
- 经典排序算法(四)希尔排序---C++
- 2013蓝桥杯C语言B 带分数(16`)
- iOS C语言 分支结构 循环结构
- 151128libc++abi.dylib: terminate_handler unexpectedly threw an exception错误
- C++实现最小堆及插入,调整顺序,删除堆顶元素的操作
- C++实现最小堆及插入,调整顺序,删除堆顶元素的操作
- iOS C语言 变量 综合运算符
- C语言之指针
- C语言结构体的“继承”
- C++拷贝构造函数
- C++设计模式——从多态到观察者模式到MVC架构
- C/C++之回调函数
- c++中exit的使用