我写了这段代码,但它没有正常工作

问题描述 投票:-4回答:1

我正在编写一个代码,它接受用户想要的长度字符串并显示它。这就是我写的

#include<stdio.h>
#include<stdlib.h>
void main()
{
  char *a;
  int i,n;
  a=(char*)calloc(1,sizeof(char));
  printf("enter the string\t");
  for(i=0;a[i]!=0;i++)
  {
        scanf("%[^0]c",&a[i]);
        n=2+i;
        a=(char*)realloc(a,(n)*sizeof(char));
  }
  for(i=0;a[i]!=0;i++)
  {
        printf("%c",a[i]);
  }
  free(a);
  a=NULL;
}

但它没有进入循环并接受任何输入。你能告诉我出了什么问题吗?谢谢

c string dynamic-memory-allocation
1个回答
1
投票

你没有进入循环,因为你用a分配了calloc,所以a[0]是0.它将失败你的两个a[i]!=0循环的初始for测试。

© www.soinside.com 2019 - 2024. All rights reserved.