【发布时间】:2014-05-03 20:13:19
【问题描述】:
好的,我目前正在 Visual Studio 2010 中学习 C,我的目标是为“num”元素的平面结构(包含空中交通管制员模拟信息)分配足够的内存。下面是我为该功能提供的代码。 setData 是一个已经完成的工作函数,用于存储单个平面结构数据。我的问题:如何让它调用 setData "num" 次并将所有元素返回到 main?我的想法是当我返回分配的内存的第一个字节时,循环存储每个元素的数据......这是元素一个而不是所有元素。
struct plane* list_intialize(unsigned int num)
{
struct plane * ptr;
int i=0;
ptr = (struct plane *) malloc(num * sizeof (struct plane));
for(i=0;i<num;++i)
setData(&ptr[i]);
return ptr;
}
这是我对该功能的说明: 这里将一个无符号整数列表大小传递给此函数,您将创建一个大小为列表大小的链接列表。这将通过重复使用 malloc 并调用 setData 将数据初始化到结构平面字段中来执行。每次将进程放入列表时,您都需要将其放入,以便列表按字段距离排序(按升序排列)。你返回列表的头部
我有升序排序,我只需要其余的
【问题讨论】:
-
你是对的。有什么问题?
-
当我调用该函数时,它只显示一个结果而不是“num”个结果。
-
发布一个完整但尽可能短的工作程序。在这里,您可能做错了太多其他事情,我们需要看到它们。
-
您想要 1 个还是多个
struct plane?另外,do not cast the result ofmalloc. -
@user3599935:您的代码中没有任何地方尝试“显示”任何内容。它怎么可能“显示”一些东西?
标签: c arrays struct return malloc