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");            

}     

运行如图: