// ptr_ops --指针 操作#includeint main(void){ int urn[5] = {100,200,300,400,500}; int *ptr1,*ptr2,*ptr3; ptr1 = urn; //把第个地址赋给指针 ptr2 = &urn[2]; //同上 p...
分类:
编程语言 时间:
2015-10-15 22:16:10
阅读次数:
311
教研室的项目,就是用Qt做个图形界面能收发数据就可以了,但是创建数据管理类的时候需要各种new, delete,很小心了但是内存使用量在不断开关程序之后函数会长,由于用的是gcc 4.7.* 所以好像没有shared_ptr可以用,上网查了一下原来QT也有智能指针。常用的有 QScopedPoint...
分类:
其他好文 时间:
2015-10-15 18:26:17
阅读次数:
402
函数说明void* realloc (void* ptr, size_t size);语法指针名=(数据类型*)realloc(要改变内存大小的指针名,新的大小)。新的大小可大可小(但是要注意,如果新的大小小于原内存大小,可能会导致数据丢失,慎用!)头文件#include 有些编译器需要#incl....
分类:
编程语言 时间:
2015-10-13 15:14:52
阅读次数:
145
一、动态内存与智能指针 1、new:在动态内存中为对象分配空间并返回一个指向该对象的指针;delete:接受一个动态对象的指针,销毁该对象,并释放与之关联的内存 2、两种指针:shared_ptr和unique_ptr;还有一个weak_ptr;都定义在memory中 二、shared_ptr类:智...
分类:
其他好文 时间:
2015-10-11 19:38:46
阅读次数:
232
1. 智能指针(如标准库的auto_ptr,shared_ptr,weak_ptr,boost的scoped_ptr等)主要用于动态内存的管理,同时提供给用户与内置指针一样的使用方法,本条款主要涉及智能指针在构造与析构,复制和赋值,解引等方面的注意点,而非智能指针的实现细节.2. 智能指针的构造,赋...
分类:
编程语言 时间:
2015-10-06 23:38:32
阅读次数:
391
先可考虑下下面这个语句:1 int prioriy();2 processWidget(shared_ptr(new Widget), priority());上面这条语句看似比较正常,不会泄露资源,但是实际上并非如此。调用上面这个语句的时候基本上分成三步:1. new Widget2. 根据Wid...
分类:
其他好文 时间:
2015-10-06 19:35:20
阅读次数:
199
templateclass LockFreeStack{private: struct Node; struct CountedNode { int externalCount = 0; Node* ptr = nullp...
分类:
其他好文 时间:
2015-10-05 07:00:10
阅读次数:
192
1、概念 在C++中,类的对象建立分为两种,一种是静态建立,如A a;另一种是动态建立,如A* ptr=new A;这两种方式是有区别的。 静态建立一个类对象,是由编译器为对象在栈空间中分配内存,是通过直接移动栈顶指针,挪出适当的空间,然后在这片内存空间上调用构造函数形成一个栈对象。使用这种...
分类:
编程语言 时间:
2015-10-04 13:33:32
阅读次数:
227
#include #include #include struct list_head { struct list_head *next, *prev;};#define list_entry(ptr, type, member) \ (type *)( (char *)p...
分类:
编程语言 时间:
2015-09-30 14:19:39
阅读次数:
173
templateclass LockFreeStack{private: struct Node { std::shared_ptr data; Node* next; Node(T const& value): ...
分类:
其他好文 时间:
2015-09-30 10:58:05
阅读次数:
165