摘要:
今日写程序,突然想到一个问题,为什么有时候不要malloc,为什么有时候要呢!好好查资料才了解到一些原理。 函数原型:void *malloc(unsigned int num_bytes); //分配长度为num_bytes字节的内存块 返回值是void指针,void* 表示未确定类型的指针,vo 阅读全文
摘要:
写了一个函数,删除数组里面的元素,声明如: int student_delete(int *len, struct student stu[]); 在其内部调用了另一个函数 int student_del_by_number(int num, int *len, struct student stu 阅读全文
摘要:
利用iptable设置防火墙: iptables -A INPUT -p tcp -m mac --mac-source 44:94:FC:25:68:8D --dport 80 -j DROP 阅读全文
摘要:
文件IO实际是API,Linux对文件操作主要流程为:打开(open),操作(write、read、lseek),关闭(close). 1.打开文件函数open(): 涉及的头文件: #include <sys/types.h> #include <sys/stat.h> #include <fcn 阅读全文
摘要:
cssl库使用方法概括: 1.cssl_t *ser; //定义一个串口结构体 2.cssl_start(); //使用cssl串口库 3.cssl_open(); //打开并配置串口,参数: 串口名, 回调函数名, 0, 波特率, 8, 0, 1 ;在回调函数中处理接收到的数据 4.读取串口,两种 阅读全文
摘要:
1、用变量名来访问内存(c语言对内存地址的封装、数据类型、函数名)--直接访问内存(使用地址) 如 int a; 编译器将申请32bit的内存(4个内存单元),同时将内存地址和变量名a绑定,操作a时,编译器根据a绑定的地址去寻找对应的内存单元,我们则无需再关注具体的内存地址了。所以变量名被编译器绑定 阅读全文
摘要:
学习笔记 1、内存编址方法 内存在逻辑上是一个个格子,格子占有空间,可以用来存储数据,每个格子有编号,编号就是内存的地址,地址和格子空间是一一对应且永久绑定的。程序运行时,CPU只关心地址,不关心这个地址所代表的空间在哪里,怎么分布这些实体问题。有地址就一定能够找到对应的内存单元(内存单元:包括内存 阅读全文
摘要:
1.共用体 union其定义与结构体类似:union 类型名{ 成员表列;};声明变量的方法也类似: a. union 类型名{ b. union { c.类型名 变量名; 成员表列; 成员表列; }a,b; }a,b; 长度计算:因为是从内存中同一起始地址开始的,所以占用内存长度最长的成员长度为共 阅读全文
摘要:
1.一种自定义的类型--结构体定义: struct 结构体名称 { //成员表列也称作域 还可以包括函数,即函数成员,不过一般结构体类型中不包含,而是放在类中。 类型名 成员名; };这种结构体类型类似于数据库中的记录例: struct Me{ char name[20]; char IDnumbe 阅读全文
摘要:
1. C++中已经定义了NULL为0:#define NULL 0 指针p可以指向空值NULL即 p = NULL;表示该指针变量不指向任何变量。 注意:指针未初始化与指针为NULL不同, p = NULL;是有值的,为0; 而在定义时:int *p;这时候碎虽然未对p初始化,但不代表p无值,而是此 阅读全文