Android 下 JNI 开发Day1
动态创建数组-15
malloc(memory allocate) 函数
realloc re- allocate 重新分配
动态数组的创建步骤
1、让用户输入一个长度
2、根据长度,分配内存空间
3、让用户把数组中的元素依次的赋值;
4、接收用户输入扩展数组长度
5、根据扩展的长度重新分配空间
6、把扩展长度的元素让用户赋值;
7、输出数组
malloc(长度);分配内存
realloc(数组,长度)重新分配空间
范例如下:
main()
{
//1、让用户输入一个长度
printf("请输入数组的长度:");
int length;
scanf("%d",&length);
printf("你输入的长度为:%d\n",length);
//2、根据长度,分配内存空间
// int* == int iArray[]
int* iArray = malloc(length * 4);//分配出指定元素的总空间:3个元素,3 * 4 = 12;
//3、让用户把数组中的元素依次的赋值;
int i;
for(i = 0;i < length;i++){
printf("请输入第[%d]元素的值:",i);
scanf("%d",iArray + i);
}
//4、接收用户输入扩展数组长度
printf("请输入扩展的长度:");
int supportLength ;
scanf("%d",&supportLength);
printf("扩展的长度为:%d\n",supportLength);
//5、根据扩展的长度重新分配空间
iArray = realloc(iArray,(length + supportLength) * 4);
//6、把扩展长度的元素让用户赋值;
for(i=length;i<(length + supportLength);i++){
printf("请输入扩展第[%d]元素的值:",i);
scanf("%d",iArray + i);
}
//7、输出数组
for(i = 0;i < length + supportLength;i++){
printf("iArray[%d]=%d\n",i,*(iArray +i));
}
system("pause");
}
运行如图: