C语言文件读取的时候,如何设置数组长度

C语言文件读取的时候,如何设置数组长度,第1张

动态分配的数组可以自定义数组的长度,示例如下:

#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

以上回答你满意么?


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/11003088.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-12
下一篇 2023-05-12

发表评论

登录后才能评论

评论列表(0条)

保存