内存管理
内存管理
- 系统自动管理:栈空间
- 用户手动管理:堆空间
stdlib.h
-malloc() 分配内存
-free() //释放空间,不释放就不会停止,
//在一个函数中结束就会释放内存,但在一直运行的程序中就会内存泄露(内存一直变少),程序结束就会归还空间
-realloc 重新分配(扩容)
-calloc 分配内存(空间初始化0)
-memset
-memcpy
-memcmp
指针:一种数据类型,存储内存空间的编号(地址)
‘’’c
int *p1; 整型指针
char *p2; 字符指针
//类型不确定的指针
void *p3;
int *p = p3;
char *p = p3;
double *p = p3;
p3=p1;
p3=p2;
*p3 ERROR,需要把他赋给类型确定的指针类型
结构体
数据类型
- 基本类型
-int
-char
-double - 复合类型
-数组
-字符串
-结构体
-联合
-类/对象
封装
定义结构体
‘’’c
//自定义的数据类型
struct user
{
char name[16];
int age
char *tel;
}
int a;
struct user u1;
1.结构体变量相互赋值,拷贝了属性的值(复印件)
2.操作结构体的函数,参数应该是指针类型,否则函数无法修改结构体的属性
结构体大小
1.属性类型中在最大值(int long double)的整数倍(字符不算连续的)
2.属性最小往大排序,空间占用最小
结构体指针的使用
阶段项目:短网址转换服务
URL 超链接