学习的函数

学习的函数

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

posted @   孟夏十二  阅读(42)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· Manus的开源复刻OpenManus初探
· 写一个简单的SQL生成工具
点击右上角即可分享
微信分享提示