【发布时间】:2012-01-13 07:43:27
【问题描述】:
我正在尝试创建一个结构数组,我已经完成了,我必须接收来自用户的输入。第一条数据是描述(一个字符串)。我也必须为它分配内存。我不是要检查的字符串有多大,但我认为我没有正确设置它。谁能给我一个提示或我可以查看的页面来弄清楚吗?
非常感谢。以下是重要的代码片段:
struct myExpenses
{
char *description;
float cost;
};
int main (void)
{
struct myExpenses *pData = NULL;
struct myExpenses expenses[60];
int exit=0;
int i = 0;
char buffer[81] = "";
printf("Please enter all your descriptions:\n");
for (i=0;i < 60; i++)
{
fgets(buffer,stdin);
expenses[i].description=(char *)malloc sizeof(buffer);
}
【问题讨论】:
-
您已将此标记为
C++,但它看起来像普通的C代码? -
因为这是专门针对 C++ 而不是 C,您是否有理由使用
char[]s 而不是std::strings? -
抱歉,这是一门 C++ 课程,所以我有点自动驾驶。 @AusCbloke:我不明白你指的是什么。
-
不要对
malloc和 AFAIKfgets的返回值进行类型转换,采用 3 个参数 -
fgets的电话会在你的脸上炸开。 maxlen 参数在哪里?