读书人

请各位帮忙看看小弟我这道题写的对马

发布时间: 2012-03-08 13:30:13 作者: rapoo

请各位大虾帮忙看看,我这道题写的对马 谢谢!
从键盘上不断键入字符,将键入的字符存入一个增长的无名数组中,每键入一个字符就增长一个无名元素,并在最后将所有的字符输出。


我的程序如下

#include "stdio.h "
#include "stdlib.h "

main()
{
char *p,ch;
int n=1,k;


p=&ch;
p=(char *)malloc(sizeof(char));
scanf ( "%c ",&ch);
while (ch!=1)
{
n++;
p=(char *)realloc(p,n*sizeof(char));
scanf ( "%c ",&ch);
}
for(k=1;k <=n;k++)
{
printf ( "%c%d ",p[k],n);
}

}


感觉思路上是没有错误的吧。。。呵呵

[解决办法]
思路错误。
你把链表与数组混为一谈了,那是不对的,数组在内存中是一块连续的空间,而链表不是,它是
随机存储的。
看一下基础的东西吧,我写个例子你看一下:
#include <stdlib.h>
#include <stdio.h>
typedef struct ch
{
char a;
struct ch *next;
}CH;
main()
{
CH *pc, *ph, *pp;
pc = (CH *)malloc(sizeof(CH));
ph = pp = pc;
pc-> next = NULL;
pc-> a = getchar();
getchar();
while(pc-> a != '1 ')
{
pc = (CH *)malloc(sizeof(CH));
pp-> next = pc;
pc-> a = getchar();
getchar();
pc-> next = NULL;
pp = pp-> next;
}
pp = ph;
while(pp != NULL)
{
printf( "%c ",pp-> a);
pp = pp-> next;
}
printf( "\n ");
}

读书人网 >C语言

热点推荐