- 博客(5)
- 收藏
- 关注
原创 动态内存管理经典笔试题目
题目1 void GetMemory(char *p) { p = (char *)malloc(100); } void Test(void) { char *str = NULL; GetMemory(str); strcpy(str, "hello world"); printf(str); } 程序崩溃,原因如下: 1、形参p是实参str的一份临时拷贝,对p进行的操作不影响str的值,str仍为NULL,在进行strcpy的过程中,对NULL..
2022-05-04 00:48:40 200
原创 预处理命令
什么是预处理命令? C语言源文件要经过编译、链接才能生成可执行程序: 1) 编译将源文件(.c文件)转换为目标文件。对于 VC/VS,目标文件后缀为.obj;对于GCC,目标文件后缀为.o。 2) 链接是针对多个文件的,它会将编译生成的多个目标文件以及系统中的库、组件等合并成一个可执行程序。 在实际开发中,有时候在编译之前还需要对源文件进行简单的处理。例如,我们希望自己的程序在 Windows 和 Linux 下都能够运行,那么就要在 Windows 下使用 VS 编译一遍,然后在 Linux 下使用
2022-05-03 22:54:18 487
原创 结构体内存对齐
我们先看一段这样的代码: #include <stdio.h> struct S1 { char c1;//1 int i;//4 char c2;//1 }; struct S2 { char c1;//1 char c2;//1 int i;//4 }; int main() { struct S1 s;//12 struct S2 s2;//8 printf("%d\n", sizeof(s));//结果为12 printf("%d\n", sizeof(s2));
2022-03-26 21:14:54 133
原创 模拟实现memcpy和memmove
1、模拟实现memcpy #include<stdio.h> #include<assert.h> void* my_memcpy(void* dest, void* src, size_t count) { assert(dest && src); void* ret = dest; while (count--) { *(char*)dest = *(char*)src; dest = (char*)dest +1; src = (char
2022-03-23 15:34:14 77
原创 【新的开始,新的征程】
初介绍 大家好~目前某211大学工科在读,今年也是本科的最后一年,所学专业目前和计算机有交叉,想好好学习编程,一是为未来的研究生的学习研究做准备,二是多掌握一门技能,毕竟技多不压身嘛,以后可能会从事原专业,也可能会转行做个程序猿,未来的路不清楚,但现下学习的脚步不能停,努力向前! 学习计划 未来希望能够熟练掌握并使用一门语言,在未来一年里每周保持20h+的学习时间,把编程的基础打好,也方便以上手其他的语言,每周坚持写博客学习输出,也希望可以和大家共同交流,共同学习,共同成长! ...
2021-12-12 23:06:30 290
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人