C
Erupt9001
这个作者很懒,什么都没留下…
展开
-
野指针与非法内存操作
野指针与非法内存操作一、野指针二、合法的内存地址三、野指针的由来1.局部指针变量没有被初始化2.使用已经释放过后的指针3.指针所指向的变量在指针之前被销毁四、非法内存的操作1.指针变量未初始化就使用2.数组越界3.内存泄露4.多次释放指针一、野指针野指针通常是因为指针变量中保存的值不是一个合法的内存地址而造成的。C语言中没有任何手段可以判断一个指针是否为野指针!二、合法的内存地址1.在堆空间动态申请的;2.局部变量所在的栈。三、野指针的由来1.局部指针变量没有被初始化局部变量没有被初始化,指原创 2020-06-15 15:27:15 · 470 阅读 · 0 评论 -
Linux系统调用详解
Linux系统调用详解一、用户空间和内核空间二、系统调用层及作用三、系统调用和POSIX标准四、系统调用表五、用程序直接访问系统调用六、新增的系统调用一、用户空间和内核空间在现代操作系统中,处理器的运行模式通常分成两个空间:用户空间和内核空间。大部分程序运行在用户空间,而内核和设备驱动运行在内核空间。二、系统调用层及作用在现代操作系统架构中,内核空间和用户空间中间增加了一个中间层:系统调用层系统调用层的主要作用:为用户空间程序提供一层硬件抽象接口。让应用程序编程者从学习硬件设备底层编程中解放出原创 2020-06-11 20:36:42 · 540 阅读 · 0 评论 -
open和fopen的区别
1.函数声明、参数、返回值、头文件函数声明: FILE *fopen(const char *filename, const char *mode)参数: 1. filename -- 这是 C 字符串,包含了要打开的文件名称。 2. mode -- 这是 C 字符串,包含了文件访问模式,模式如下: "r" 打开一个用于读取的文件。该文件必须存在。 "w" 创建一个用于写入的空文件。如果文件名称与已存在的文件相同,则会删除已有文件的内容,文件被视为一个新的空文件。 "a原创 2020-06-10 21:38:33 · 442 阅读 · 0 评论 -
[C/C++] C++声明和定义的区别
变量定义:用于为变量分配存储空间,还可为变量指定初始值。程序中,变量有且仅有一个定义。变量声明:用于向程序表明变量的类型和名字。定义也是声明:当定义变量时我们声明了它的类型和名字。·extern关键字:通过使用extern关键字声明变量名而不定义它。1.定义也是声明,extern声明不是定义,即不分配存储空间。extern告诉编译器变量在其他地方定义了。 extern int i; ...转载 2020-03-21 14:52:03 · 198 阅读 · 0 评论 -
C/C++中变量的定义和声明
和C相比,C++对于全局变量的检测增强,在C中,全局区域的两次int a;并不会出现报错,但在C++中却会出现变量重定义的错误然而在C++中,两次int a;会出现变量重定义的错误但无论C还是C++,变量的定义只有出现一次,但变量的声明可以出现多次。先了解一哈变量的定义和变量的声明到底做了哪些事情~C语言变量的定义://变量声明的示例int a;int b = 1;extern ...原创 2020-03-16 21:18:08 · 2385 阅读 · 0 评论 -
C:文件加密
主函数:main.c#include <stdio.h>#include "fun.h"int main(int argc, char *argv[]){ while(1) { int cmd = 0; print_help(); scanf("%d", &cmd); if(1 == cmd) { char src_fil...原创 2020-03-04 23:50:05 · 508 阅读 · 0 评论