C语言创建动态数组
1.编写步骤
1. 添加所需头文件
stdlib.h
2. 创建对应类型指针
int *arry;
3. 使用void* malloc (size_t size)函数分配数组地址空间
注: 地址空间大小,以字节为单位 int size=5; arry=(int )malloc(sizesizeof(int)); //创建5个int类型的数据空间并返回空间首地址,地址大小为5*4=20字节
4. 使用void free (void* ptr)函数释放动态地址空间
free(arry); 使用完动态数组以后应释放地址空间,以免占用。
相关函数参考链接: http://www.cplusplus.com/reference/cstdlib/.
2.示例
例1:
#include <stdio.h>
#include <stdlib.h>
void main()
{
int i;
int size;
int *arry;
printf("输入数组长度:");
scanf("%d",&size);
arry=(int *)malloc(size*sizeof(int));
for(i=0;i<size;i++)
{
arry[i]=i;
}
for(i=0;i<size;i++)
{
printf("%d\r\n",*(arry+i));
}
free(arry);
}
运行结果图片
例2:
#include <stdio.h>
#include <stdlib.h>
double P[3]={0.1,0.2,0.7};
void fun(int num);
void main()
{
int num=2;
fun(1);
}
void fun(int num)
{
int i;
int t1=(num+1)*2+1;
int *g_num;
double *LL;
g_num=(int *)malloc(t1*sizeof(int));
LL=(double *)malloc(t1*sizeof(double));
for(i=0;i<t1;i++)
{
*(g_num+i)=-1*(num+1)+i;
LL[i]=*(g_num+i)*P[i%3];
printf("人数:%d,概率:%f\r\n",g_num[i],*(LL+i));
}
free(g_num);
free(LL);
}
运行结果图片
|