malloc calloc 头文件 <stdlib.h>
原型:calloc(size,sizeof(类型));
p=(int *)calloc(100,sizeof(int));//数组有100元素,每个元素是int类型,元素大小sizeof(int)
-----------------------------
memset 头文件 <memory.h>
原型:memset(数组名,0或-1,sizeof(数组名));
int q[10];
memset(q,0,sizeof(q)); //初始化的数组名为q,初始化为0,sizeof(q)表示数组总大小,sizeof(数组名)
malloc
原型:malloc(size * sizeof(类型));
int *p;p=(int *)malloc(100*sizeof(int)); //数组有100元素,每个元素是int类型,元素大小sizeof(int)
原型:calloc(size,sizeof(类型));
p=(int *)calloc(100,sizeof(int));//数组有100元素,每个元素是int类型,元素大小sizeof(int)
-----------------------------
memset 头文件 <memory.h>
原型:memset(数组名,0或-1,sizeof(数组名));
int q[10];
memset(q,0,sizeof(q)); //初始化的数组名为q,初始化为0,sizeof(q)表示数组总大小,sizeof(数组名)
#include<stdio.h>
#include<stdlib.h>
#include<memory.h>
const int n=10;
int main()
{
int *p;
p=(int *)malloc(n*sizeof(int));//malloc
int i;
printf("使用malloc分配,数组中值任意:\n");
for(i=0;i<n;i++)
{
printf("%d\n",p[i]);
}
printf("------------------------\n");
free(p);
printf("使用calloc分配,数组值初始化为0:\n");
p=(int *)calloc(10,sizeof(int));
for(i=0;i<n;i++)
{
printf("%d\n",p[i]);
}
printf("------------------------\n");
printf("使用memset,只能为已知大小数组初始化,初始值限定为0或-1:\n");
int q[n];
memset(q,-1,sizeof(q));
for(i=0;i<n;i++)
{
printf("%d\n",q[i]);
}
return 0;
}