谁能解释下malloc在c语言中的用法?
来源:百度知道 编辑:UC知道 时间:2024/05/03 09:06:41
程序语句:int *a;
a=(int *)malloc(sizeof(int));
不明白malloc在其中的用法
请你帮忙解释下。越详细越好。谢谢噢。
a=(int *)malloc(sizeof(int));
不明白malloc在其中的用法
请你帮忙解释下。越详细越好。谢谢噢。
在C语言中使用malloc函数进行动态内存分配。malloc的全称是memory allocation,中文叫动态内存分配。
原型:extern void *malloc(unsigned int num_bytes);
功能:分配长度为num_bytes字节的内存块。注意是分配的内存是按字节来计算的。
返回值:如果分配成功则返回指向被分配内存的指针(此存储区中的初始值不确定),否则返回空指针NULL。当内存不再使用时,应使用free()函数将内存块释放。函数返回的指针一定要适当对齐,使其可以用于任何数据对象。示例如下,注意看注释:
#include<stdio.h>
//使用malloc需要加stdlib.h的头文件
#include <stdlib.h>
#include <string.h>
int main()
{
//分配内存10个int元素的数组,注意按字节分配,所以要乘以int类型所占的字节
int *p = (int *)malloc(sizeof(int) * 10);
if (p==0) {
printf("不能分配内存\n");
return 0;
}
//初始化内存
memset(p, 0x00, sizeof(int) * 10);
int inx;
//使用
for (inx=0; inx!=10; ++inx) p[inx] = inx;
for (inx=0; inx!=10; ++inx) printf("%d\t&qu