나는 모든 길이의 사용자로부터 문자열을 받아들이고 그것을 표시하는 간단한 코드를 작성 중이다. 그러나 문자열을 받아들이지 만 제대로 인쇄하지 못하기 때문에 코드가 제대로 작동하지 않습니다.이 코드에 어떤 문제가 있는지 잘 모르겠습니까?
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
main()
{
int i,len;
static int n=5;
char a[20];
char **s;
s=malloc(5*sizeof(char));
char *p;
for(i=0;i<n;i++)
{
scanf("%s",a);
if(*a=='1') /*to exit from loop*/
{
break;
}
len=strlen(a);
p=malloc((len+1)*sizeof(char));
strcpy(p,a);
s[i]=p;
if(i==n-1)
{
s=realloc(s,(5+i*5)*sizeof(char));
n=5+i;
}
}
for(i=0;i<n-1;i++)
{
printf("%s ",s[i]);
}
free(p);
p=NULL;
return 0;
}
'나는 길이에 상관없이 사용자의 문자열을 받아들이고 표시하는 간단한 코드를 작성하고 있습니다. ... 많은 일을하고 있습니다. 여기에서 일하고 있습니다 ... –
* "나는 무엇이 일어나고 있는지 모르겠습니다. 이 코드가 잘못 되었습니까? "* - 단순한 물음표는 그 문장을 질문으로 만들지 않습니다. [이 게시물에 대한 디버깅] (https : // ericlippert.com/2014/03/05/how-to-debug-small-programs /). – StoryTeller
당신은'길이의 사용자로부터 문자열을 받아 들일 수 있습니다. '하지만 당신은 단지 19 문자의 배열을 가지고 있습니다. –