c语言怎么输入任意长度的一个数组

2024-12-19 14:46:06
推荐回答(3个)
回答1:

首先 严格来说 不可能出现任意长度。 内存是有限的 超出一定长度后,不可能存的下,虽然这个值可能是超级大的,但总有限度。

其次,所谓的任意长度,其实就是可变长数组。
那么,在事先不知道数组规模下,就要靠输入,来确定数组大小了。
重点在于,要开辟多大的数组来存

一般有这么几种情况
1 直接开一个足够大的。 比如 虽然不知道有多大,但最大不超过1000个,那就可以直接开个1000元素的数组。
2 动态分配, 使用malloc动态分配内存。
当出现可能的不够情况,用realloc重新分配。

回答2:

#include
#include
int main()
{
    int i=0,n=1;
    int *a;
    a=malloc(n*sizeof(int));
    do
    {
        scanf("%d",&a[i++]);
        realloc(a,++n*sizeof(int));
    }while(getchar(a[i-1])!='\n');
    for (i=0;i        printf("%d ",a[i]);
    printf("\n");
}

回答3:

办法不少,正宗的是用链表。