问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

在c语言中如何实现数组的动态输入?

发布网友 发布时间:2022-05-13 06:01

我来回答

1个回答

热心网友 时间:2023-07-25 13:34

头文件malloc.h

使用malloc来申请一个初始地址空间。

然后在循环输入的过程中不断检查初始空间是否已满,满了就是使用realloc来扩展地址空间。

最后,如申请的地址不需要使用了,且程序没有结束,需要用free来释放。

另外,使用malloc或realloc申请时,需要先判断下返回值是否为空,如有异常申请失败,用空指针直接使用,会造成程序错误。

下面简单示范:(初始申请2个字节,之后每次输入字符扩展1个字节,回车结束输入)

#include <stdio.h>

#include <malloc.h>

int main()

{

    int len=2;

    char *a=NULL,*aSave=NULL,c;

    a=(char*)malloc(sizeof(char)*len);

    if(!a)

        return 1;

    a[0]=0;

    while(1)

    {

        c=getchar();

        if(c==10)

            break;

        if(a[0]==0)

            a[0]=c,a[1]=0;

        else

        {

            aSave=realloc(a,sizeof(char)*len);

            if(!aSave)

                return 1;

            a=aSave;

            a[len-2]=c,a[len-1]=0;

        }

        len++;


    }

    printf("输入的字符串数组是:\n%s\n",a);

    free(a);

    return 0;

}

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
做鼻小柱用什么材料好? 谁有visio2003版 WIN7 64位啊,有的话发个连接 中山东区怎样坐车去珠海 ...忘记了ID密码,苹果官网发来一个这样的网址,请问怎么操作? 苹果id被锁定26天后可以重设密码 快手发作品配的说说大全 四年级语文爬山虎的脚教案 工作井内有哪些设备 南方电网检查井内设有排管吗 安装电缆施工 c语言中如何输入一个没有长度的数组 c语言 怎样输入一个数组单独输出数组里面的一个数 c语言数组如何实现从键盘上输入数组的个数 C语言中,如何手动输入二维数组 分期买房小额贷款申请较多能买吗 - 信息提示 怀孕四个月,五个月,六个月胎心都是159正常吗? div+css布局与表格布局 胎心率152次/分钟一般是男是女 怀孕四个月胎心多少正常 怀孕四个月胎心163正常吗 现已怀孕四个月胎心152次/分正常吗 空调制冷、制热 通过四通阀切换。请问下,冷凝器 和 蒸发器 是同一个东西的两种状态吗? 请问 同一台空调 翅片式蒸发器与冷凝器在设计上有何区别? 我家的海尔电热水器 只加热到43度就不加热了 绿灯就亮了 想让它加热到63度或更高温度 怎么办 燃气热水器只烧到46度就不上升了是怎么办 热水器为什么烧到44度就上不去了 燃气热水器烧到五十几度过会就不热了怎么办? 史密斯热水器加热到42℃就不再加热是什么原因 史密斯热水器洗澡时到41度烧到46度不往上烧了怎么回事 c语言中如何将100个数据输入到一个数组 贷款未还清的房子可以转让吗 有了高级钳工证能考工程师证吗 右手麻 右肩膀难受 转动里面咔咔响 啥原因 右肩膀酸痛,延续到脖根,画圈动能听到咔咔的声,好像在三角骨头那,请问怎么回事? 右肩膀上下移动就嘎吱嘎吱的响怎么回事? 本人25岁,好像一到阴天,右肩膀的关节处疼痛,转动胳膊时会听到“咔咔”的响声。请问这是怎么了 右肩膀活动骨头咔咔的响胳膊有点疼抬不起来是怎么了? 右肩关节旋转时咔咔作响 右肩膀关节处咔咔响,不能往后和太大幅度的运动,很疼是怎么回事 债务人进行破产清算,保证人保证期间已届满,债权人能否主张保证人承担保证责任 为什么我的电脑突然就断网了? 肩膀疼,咔咔响,是什么原因 企业破产清算后,债权人可否主张股权转让协议无效 右侧肩膀腰和膝盖经常有响声怎么回事? 为什么医院检测hiv抗体总是把抽血样本放24小时再去检测?是不是会不准确?我在半年多时间里再两家医 右肩膀活动活动总嘎嘣嘎嘣响,求救&#xF640; 天津肿瘤医院 医生开化验单后,化验需要预约吗?等待时间长吗?比如验血,CT等。另,医院内好停车吗?收费 医院对抽血采集时间与送检时间有什么要_百度拇指医生 鼠标指针资源包安装后可以删除吗?