在C语言中,可以实现这样的操作吗?比较初级

来源:百度知道 编辑:UC知道 时间:2024/05/21 07:35:20
首先定义一个数组,可以先不给元素个数吗?然后让用户自己输入一个数字,比如提示,你要几个元素,然后输入一个数,这个数就是数组的元素,我试过好多方法,都行不通.帮帮偶啦

C语言不支持动态定义数组。也就是下列语句是不允许的:
scanf("%d",&iNum);
int aInt(iNum);
但是可以用指针进行代替。如果你还不了解指针的话可以先找相关内容熟悉一下,这里给你一个方法。
假设要定义一个int类型数组。
int *aInt;
scanf("%d",&iNum);
aInt = (int*)malloc(sizeof(int)*iNum);
这样假如输入10,那么就为aInt分配了一个能存储10个int类型数据的空间。
不知道你能不能理解,不懂再问~~

数组已经是链表了.但是静态链表.C不能定义动态数组.
只靠编一个小程序只能实现动态赋值,仍不是动态数组.
程序的原理是在动态存储区申请一个很大的数组.多大看自己.
然后建个for循环开始按个输入数值.
再该干什么干什么,
所以事情做完数组也用不着了时.赶紧把数组释放.
否则你建很多大数组,会把内存都占没.
这个问题你不需要关注.
真正实现动态链表是这样的.
程序我就不写了,原理:
先建一个数组,数组长度等于你想输入类型长度,可先用sizeof求一下.
用个for.每当你输入一个数时,建一个新数组.和原来那个一样的.
然后用指针将这个新数组接到原数组之后,形成一个链表,
直到你输入某个字母或回车之类的.这个可以自己设.然后输入结束.
这些数组就构成了一个链表.
再算一下一共输了几个数.建个相应的数组.将这些数用指针按顺序复制到新数组了.这样用起来就方便多了,然后释放那个链表.
当然,如果你以后还可以新加数的话.可以不建数组.最后一切用指针.
这个功能已经有库函数可用.名字我忘了.
下到TC里.程序里加个头文件就可以了.

嗯,gbwzx说的很对,可以动态申请空间,用malloc 和 realloc 申请/调整申请的空间,也可以做成链表,“数据结构”方面的教材