#include <stdio.h>#include <string.h>#include <stdlib.h>int main(){printf("输入要分配的内存大小:")int sizescanf("%d", &size) //输入自定义的数组长度int *pstart = (int *)malloc(sizeof(int) *size)if (pstart==0) {printf("不能分配内存\n")return 0}memset(pstart, 0x00, sizeof(int) * size)int inxfor (inx=0 inx!=size ++inx) pstart[inx] = inxfor (inx=0 inx!=size ++inx) printf("%d\t", pstart[inx])printf("\n")return 0}
可以通过”Scanner“函数 直接输入参数的形式,创建一个新数组即可,举例:import java.util.Scanner
public class Test {
public static void main(String[] args) {
Scanner input=new Scanner(System.in)
System.out.println("请输入一个数组长度:")
int length=input.nextInt()//输入一个正整数就是要定义的数组长度
int a[]=new int[length]
}
}
备注:上面的” int a[]=new int[renshu]“就是定义的新的数组,其中length就是数组的长度。
在Java中,数组不能动态重设大小。一个可替代方法是使用java.util.ArrayList (或者java.util.Vector)代替使用原始数组(array)。另一种解决方案是用一个不同大小的数组重设数组,将旧数组内容拷贝到新的数组。/** * 使用一个新大小重设数组,并拷贝旧数组的内容到新数组 * @param oldArray 旧数组被重设 * @param newSize 新数组大小 * @return 返回带同样内容的新数组 */privatestatic Object resizeArray (Object oldArray, int newSize){ int oldSize = java.lang.reflect.Array.getLength(oldArray)Class elementType = oldArray.getClass().getComponentType()Object newArray = java.lang.reflect.Array.newInstance( elementType,newSize)int preserveLength = Math.min(oldSize,newSize)if (preserveLength >0) System.arraycopy (oldArray,0,newArray,0,preserveLength)return newArray}// resizeArray()测试用例publicstaticvoid main (String[] args) { int[] a = {1,2,3}a = (int[])resizeArray(a,5)a[3] =4a[4] =5for (int i=0i
以上回答你满意么?
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)