C语言
文章平均质量分 62
菜菜的狗子
这个作者很懒,什么都没留下…
展开
-
从字节面试题来看二级指针的使用
面试题:写一个函数实现一个:(分配指定大小的内存块,可以使用malloc)intmy_malloc(char **ptr,int size)使用下面的形式来用这个函数:*ptr=NULL;my_malloc(&ptr,10)正确解法:int my_malloc(char** ptr, int size) {char* temp = NULL; //ptr应该指向传递进来的指针,ptif (ptr == NULL) {...原创 2020-08-27 15:16:53 · 194 阅读 · 0 评论 -
简单了解一下大小端以及判断方法
大端模式:是指数据的高字节保存在内存的低地址中,而数据的低字节保存在内存的高地址端。小端模式,是指数据的高字节保存在内存的高地址中,低位字节保存在在内存的低地址端。网络通信中一般为大端模式,常用计算机CPU为小端模式。判断大小端的三种方法:1.利用联合体的性质int main() {union AA {int a;char b;}A; ...原创 2020-08-18 17:09:42 · 497 阅读 · 0 评论 -
malloc与new用法与区别
一、malloc()和free C语言中malloc函数向系统申请分配size个字节的内存空间。返回值类型是void* 类型。void* 表示未确定类型的指针。c,c++规定,void* 类型可以强制转换为任何其它类型的指针。void *malloc(size_t size);void free(void *ptr);eg:// char *Ptr = NULL; Ptr = (char *)malloc(100 * sizeof(ch...原创 2020-05-11 18:01:11 · 701 阅读 · 0 评论 -
C语言的内存管理以及堆和栈的区别
一、C语言的内存分配1.可执行文件存储时(没有调入到内存) 分为代码区(text)、数据区(data)和未初始化数据区(bss)3个部分。1)代码区:存放CPU执行的机器指令(machine instructions)。通常,代码区是可共享的(即另外的执行程序可以调用它),因为对于频繁被执行的程序,只需要在内存中有一份代码即可。代码区通常是只读的,使其只读的原因是防止程序意外地修改了它的指令。另外,代码区还规划了局部变量的相关信息。2)数据区:包含了被初始化的全局变量、静态变量(包括...原创 2020-05-11 11:25:45 · 635 阅读 · 0 评论 -
static、const、extern关键字的详解
一、static关键字1.局部变量中的static 普通局部变量就是在函数内部定义的变量(不加static修饰符)。编译器一般不对普通局部变量进行初始化,它的值在初始时是不确定的,除非对其显式赋值。普通的局部变量在栈空间上分配,这个局部变量所在的函数被多次调用时,每次调用这个局部变量在栈上的位置都不一定相同。局部变量也可以在堆上动态分配,但是记得使用完这个堆空间后要释放之。static局部变量叫静态局部变量。它与普通的局部变量的区别1)位置:静...原创 2020-05-09 22:15:12 · 924 阅读 · 0 评论