gpt4 book ai didi

c - 没有得到输出

转载 作者:太空宇宙 更新时间:2023-11-04 07:45:43 25 4
gpt4 key购买 nike

我试图扫描用户输入的字符串,然后在下一行打印它,但由于我是编码新手,我无法弄清楚为什么它没有显示输出!下面是代码-

main()
{
char* w1,w2,w3,e1,e2,e3;
printf("List of Words");
printf("\tMeanings");
scanf("%s",&w1);
printf("\n%s",w1);
getch();
}

我希望 w1 在“单词列表”下打印,但它没有显示任何输出。

最佳答案

这里

char* w1; /* uninitialized pointer */
scanf("%s",&w1); /* for w1 no memory is allocated. Also & is not required since w1 tends to points to some address */

w字符指针指针需要指向某个有效的内存位置,但在您的情况下是w1 没有任何有效内存。

首先为w分配内存,然后使用scanf()将输入数据放入w。例如

#define BUF_MAX_LENGTH 10

char *w1 = malloc(BUF_MAX_LENGTH);
if(w1 == NULL) {
/* @TODO error handling */
}

然后将数据扫描到w1中。例如

scanf("%s", w1);

一旦用 w 完成使用,不要忘记释放动态分配的内存以避免内存泄漏。例如

free(w1);

旁注,请避免在同一声明中声明字符变量和字符指针变量,以提高代码的可读性。例如

char* w1,w2,w3,e1,e2,e3; /* mixed up */

可以

char* w1 = NULL; /* All pointer declaration */
char w2,w3,e1,e2,e3; /* All normal char variable */

关于c - 没有得到输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57343648/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com