gpt4 book ai didi

c - 在 C 中对 char 输入使用 malloc

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

对于赋值,我必须声明一个结构如下:

struct Food
{
char *name;
int weight, calories;
} lunch[5] = {
{
"apple", 4, 100
},
{
"salad", 2, 80
}
};

在我的主要任务中,我试图询问用户输入的其余部分以填充结构以将它们打印出来。我想我会尝试使用 malloc。我会做这样的事情吗?

int main(void) 
{
char *str1;
printf("Please enter a food, weight, and calories of the food: ");
scanf("%s", (char *)malloc(str1));
return(EXIT_SUCCESS);
}

最佳答案

嗯……不完全是。

您只是将 malloc() 的结果传递给 scanf(),该函数不会返回它,您丢失了指针。这通常是个坏主意。另外,investigate malloc() 期望的参数是什么,你做的不对。

考虑首先分配内存,使用一个指针变量来存储它,然后将该指针的值传递给scanf()。提示:您的数组中已经有了指针变量。

此外,you shouldn't cast C 中 malloc() 的返回值,而 return 不是函数,因此它的值不应该有括号。

关于c - 在 C 中对 char 输入使用 malloc,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1706229/

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