我必须输入一个字符串并将其显示为标准输出。
理想的解决方案是将字符串获取到一个char指针数组中,但是我在scanf上得到一个错误,我推测是因为char指针字符串解决方案没有为它分配空间。

#include <stdio.h>
#include <stdlib.h>

#include <string.h>


int main(void) {

char *charString;



printf("Input string - max %i caratteri: ",CHARARRAYSIZE);
scanf("%s", charString);

printf("%s",charString);


    return EXIT_SUCCESS;
}

因此,我求助于将sting获取到一个char数组中,然后将(strcpy)复制到一个char指针string.v中。在本例中,我得到一个警告,说在strcpy调用中,strcpy是在没有初始化的情况下使用的。我该怎么解决?
请在下面找到第二个案例的代码。
#include <stdio.h>
#include <stdlib.h>

#include <string.h>



#define CHARARRAYSIZE 16


int main(void) {

char *charString;
char charArray[CHARARRAYSIZE];


printf("Input string - max %i characters: ",CHARARRAYSIZE);
scanf("%s", charArray);

strcpy(charString,charArray);

printf("%s",charString);


return EXIT_SUCCESS;
}

有什么方法可以达到我的目的并且避免使用char数组

最佳答案

您需要为字符分配空间:

charString = malloc(CHARARRAYSIZE+1);

以后,你需要释放他们
free(charString);

10-05 18:15