C/C++学习笔记
tk911914
这个作者很懒,什么都没留下…
展开
-
内存分配
内存分配方式有三种:(1) 从静态存储区域分配。内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在。例如全局变量,static 变量。(2) 在栈上创建。在执行函数时,函数内局部变量的存储单元都可以在栈上创建,函数执行结束时这些存储单元自动被释放原创 2011-08-04 20:54:18 · 303 阅读 · 0 评论 -
指针参数是如何传递内存的? (C++ 高质量)
如果函数的参数是一个指针,不要指望用该指针去申请动态内存。Test函数的语句GetMemory(str, 200)并没有使str 获得期望的内存,str 依旧是NULL,为什么?void GetMemory(char *p, int num){ p = (char转载 2011-08-04 20:55:38 · 400 阅读 · 0 评论 -
指针与引用的区别
(1)引用被创建的同时必须被初始化(指针则可以在任何时候被初始化)。 (2)不能有NULL 引用,引用必须与合法的存储单元关联(指针则可以是NULL)。 (3)一旦引用被初始化,就不能改变引用的关系(指针则可以随时改变所指的对象)。引用的主要功能是传递函数的参数和返回原创 2011-08-04 20:46:54 · 246 阅读 · 0 评论 -
指针与数组
C++/C 程序中,指针和数组在不少地方可以相互替换着用,让人产生一种错觉,以为两者是等价的。数组要么在静态存储区被创建(如全局数组),要么在栈上被创建。数组名对应着(而不是指向)一块内存,其地址与容量在生命期内保持不变,只有数组的内容可以改变。指针可以随时指向任意类原创 2011-08-04 20:52:59 · 234 阅读 · 0 评论 -
C的野指针
(1)指针变量没有被初始化。任何指针变量刚被创建时不会自动成为NULL 指针,它的缺省值是随机的,它会乱指一气。所以,指针变量在创建的同时应当被初始化,要么将指针设置为NULL,要么让它指向合法的内存。例如char *p = NULL;char *str = (c原创 2011-08-04 20:57:05 · 351 阅读 · 0 评论 -
C++拷贝构造函数(深拷贝,浅拷贝)
对于普通类型的对象来说,它们之间的复制是很简单的,例如:int a=88;int b=a; 而类对象与普通对象不同,类对象内部结构一般较为复杂,存在各种成员变量。下面看一个类对象拷贝的简单例子。 #include using namespace std;原创 2011-08-06 08:34:03 · 279 阅读 · 0 评论 -
dlopen与dlsym的使用
void *dlopen(const char *filename, int flag);其中flag有:RTLD_LAZY RTLD_NOW RTLD_GLOBAL,其含义分别为:RTLD_LAZY:在dlopen返回前,对于动态库中存在的未定义的变量(如外部变量ext原创 2011-08-09 13:03:17 · 1354 阅读 · 0 评论