学习的函数
学习的函数
malloc
作用是灵活开拓空间,和结构体,链表有很大关系,也可以用来建立字符数组。
void *malloc(size_t size)
size即为开拓的空间大小。
头文件为 #include<stdlib.h>
malloc如果分配内存成功则返回被分配内存的指针,否则返回空指针NULL
需要注意的是malloc分配的指针是无类型的指针,在使用时一定要自己强制转换成需要的类型。
即(type*)malloc(size).
int *p=NULL;
p = (int*)malloc(10);
printf("%o", p);//%o八进制输出
可以用来创建字符串
char *p;
p=(char*)malloc(16);
strcpy(p,"Hello world");
printf("%s",p);
//输出位hello world
注意事项:
在使用malloc开辟空间时,使用完成一定要释放空间,如果不释放会造内存泄漏。
在使用malloc函数开辟的空间中,不要进行指针的移动,因为一旦移动之后可能出现申请的空间和释放空间大小的不匹配(搬自csnd)
free函数
释放malloc(或calloc,realloc)函数给指针分配的内存空间。
注意:使用后该指针变量一定要重新指向新的地址或NULL
int main()
{
int *p=(int*)malloc(4);
*p=10;
free(p);
p=NULL;
return 0;
}
typedef
目前只知道typedef能为类型取一个新名字 例如
typedef int NUM;
即建立一个新的数据类型为int的NUM类型。
也可以为结构体取名。
typedef struct abc def *ght。
意为将结构体abc取名为def 以后可以用def直接用def来表示abc结构体。
*ght嘛,看这篇文章
布尔类型(bool)
在C里需要引入#include<stdbool.h>
C89中没有定义,在C99中有了定义。
直接来判断正确与错误 true代表1 false代表0;
rand/srand 随机数
rand是伪随机数,看似随机,如若系统提供种子不变则一直是一个数。
srand 与rand连用。 srand()通过参数seed改变系统提供种子值,从而使rand每次得到真正的随机数。
常用srand(time(0))或srand(time(NULL))来表示变化的种子
需头文件#include
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
int main(){
srand(time(0));
for(int i=0;i<19;i++)
{
printf("%d",rand()%100);//%100意为输出0-100的随机数
}
}
memset
memset是一个初始化函数,常用来初始化数组等
头文件<memory.h>/<string.h>
int arr[50];
memset(arr,0,sizeof(arr[50]));
for(i=0;i<50;i++)
{
arrp[i]=0;
}
//以上两种方法功能相同。
注意事项 仅用memset赋值0或1,赋值其他用for
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· Manus的开源复刻OpenManus初探
· 写一个简单的SQL生成工具