C语言 定义数组问题

当一个函数中定义了一个自动分配内存的数组时如voidfun(char*a)在主函数中如何定义输入输出一个未知长度的数组freshman求教... 当一个函数中定义了一个自动分配内存的数组时 如void fun(char *a)
在主函数中如何定义 输入 输出一个未知长度的数组
fresh man 求教
展开
 我来答
声淑兰束卿
2019-04-27 · TA获得超过3.6万个赞
知道大有可为答主
回答量:1.2万
采纳率:32%
帮助的人:864万
展开全部
字符数组不能直接将字符串直接赋给数组,只能一个元素一个元素的赋值,但是用指针可以。用数组赋值的话可以把它改下,改成char
s[20]={"right!"};
用指针赋初值可以这样改:char
*p;p="right!";
char
*p;意思就是定义一个字符指针,用来存放字符串的首地址。p="right!";是将字符串的首地址赋给p。这在你以后学到指针时就会明白了,自然也明白了为什么c语言中,不能将字符串直接赋给字符数组了。现在可以不深究,只要知道这样就行了。
帐号已注销
2014-11-20 · TA获得超过463个赞
知道小有建树答主
回答量:598
采纳率:65%
帮助的人:274万
展开全部
动态分配,定义自行百度,下面是代码
int *a;int n;int i;
printf("please input value of n"); //input the number of arry a[]
a=(int *)malloc(sizeof(int)*n); //asign space or :a=(int *)relloc(sizeof(int),n)
if(a==0) exit(0); //asign fallen!return system
如果是char 把int 换成char 还要注意一点,初始化的时候,比如char *a;分配好了空间
最好用变量来赋值比如a[2]='a';如果scanf(“”)循环输入,不要在for循环里加任何提示语句,输入时也不要在每一个子符间加空格,这样会结果出错,原因还在探究中,int型就没事,最后要free(a);
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友53b2088
2014-11-20 · 超过19用户采纳过TA的回答
知道答主
回答量:33
采纳率:0%
帮助的人:32.3万
展开全部
c和c++的数组没办法这么用,当你采用自动分配内存的时候,你创建的实际上就是一个指针了。研究一个指针的长度是没有意义的,如果说你需要一个能够在某个方法中动态分配空间并且可以随时获取长度的类似数组的东西,请了解一下容器类,如vector,list等,在c和c++中,这些容器类才是使用的最广泛的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
当前不能联网
2014-11-20 · TA获得超过1563个赞
知道大有可为答主
回答量:2626
采纳率:66%
帮助的人:629万
展开全部
首先数组是固定长度的。不固定长度的是链表。
虽然C语言中可以用字符数组来代替字符串,但仍是不同概念,不能混用。
比如:字符串中仍以'\0'作为结束字符来判断数组是否结束(串终止)。
如果是其它类型,用户自定义结束符。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式