-
malloc是C语言标准库中的函数,用于在堆内存中动态分配指定大小的内存空间。它的声明如下:
c
void *malloc(size_t size);
malloc函数接受一个参数size,表示要分配的内存空间的字节数。它返回一个指向分配的内存空间起始地址的指针。
在这段代码中,函数func使用malloc函数动态分配了4个int类型元素大小的内存空间,并将起始地址赋给指针变量arr。然后,函数将这个指针变量作为返回值返回给调用者。
在main函数中,通过调用func函数获取到分配的内存空间的起始地址,并将该地址赋给指针变量p。然后,通过调用free函数,释放了这块内存空间。
总之,malloc函数可以用来动态分配内存空间,而free函数则用来释放已经分配的内存空间,以便其他程序或资源可以重复利用它们。在使用malloc函数分配内存后,务必使用相应的free函数释放内存,以避免内存泄漏问题。查看全部 -
const 修饰普通变量
const int a, 则表示 a 是一个常量,你不可以在后续对其进行修改。因为 a 不可修改,所以在创建的时候就要对 a 进行赋值,不对其进行赋值则会报错。
const 修饰指针
只有一个 const,如果 const 位*左侧,表示指针所指数据是常量,不能通过解引用修改该数据;指针本身是变量,可以指向其他的内存单元。
int const * p = &a;
只有一个 const,如果 const 位于*右侧,表示指针本身是常量,不能指向其他内存地址;指针所指的数据可以通过解引用修改。
int * const p = &a;
两个 const,*左右各一个,表示指针和指针所指数据都不能修改
const修饰函数参数
const 修饰函数参数的时候,其作用域仅仅限制在函数内部,只要在函数中保持其不变性就可以了。
const修饰成员函数
const修饰的成员函数不能修改任何的成员函数,
const修饰的成员函数不能调用非const成员函数。
const修饰函数返回值
址传递,返回指针,引用。该返回值加一个const,可以防止返回值被调用。
值传递,值传递时,返回值会复制一份,加不加const都可以。
查看全部 -
静态联编
···c
Child * obj = new Child();
Base * baseobj = (Base *)obj;
baseobj->func();
delete obj;
return 0;再来看看这个例子,我们通过强制转换来指定 func 执行的是哪个。这个过程是在编译阶段就将函数实现和函数调用关联起来,因此静态联编也叫早绑定,在编译阶段就必须了解所有的函数或模块执行所需要检测的信息。
动态联编:
运行虚函数的实现
查看全部 -
继承与多态
查看全部 -
要将对象分配到堆上,需要用到另外两个关键字,new 和 delete。new 用来分配对象,delete 用来删除对象。new 会返回一个指针,在使用完毕后,要通过 delete 把这个指针指向的地址释放掉。
查看全部 -
无法确认指向的指针,或者指向一个无效地址的指针,我们把他叫做野指针
查看全部 -
如果想要通过指针操作变量,只需要使用解引用就可以了
查看全部 -
对于指针的复制,就不能用浅拷贝构造函数,要用深拷贝构造函数,即对被复制对象会新开辟一个空间,把要复制的指针指向的内容复制一份到新内存空间,这样深拷贝构造之后,两个指针指向的值是相同的,且空间独立。查看全部
-
要记得在cpp中展开定义时,要包含相应的hpp头文件查看全部
-
类的成员默认是私有的查看全部
-
面向过程是自顶向下的思想,逻辑主要是顺序,选择,循环,用动作(数据)的步骤查看全部
-
比起直接调用函数,用指针函数去调用,可以得到用一个变量get函数返回值,也可以调用时传递参数查看全部
-
数组名相当于一个常量指针查看全部
-
函数指针的定义和调用
查看全部 -
字节序,就是 大于一个字节类型的数据在内存中的存放顺序。
计算机硬件有两种储存数据的方式:大端字节序(big endian)和小端字节序(little endian)。
我们现在有一个整数是258。用16进制表示是0x0102,然后我们把这个整数拆分成两个字节,第一个字节为 0000 0001,第二个字节为 0000 0010。
查看全部
举报