我知道您可以将结构的特定元素传递给函数,但是是否可以传递整个结构,类似于传递整个一维数组?我试图将电影 num[1,2,3] 等传递给函数。我很确定您可以使用 for 循环传递它,但是是否可以在不使用循环的情况下传递整个结构?我的代码如下。
#include <stdlib.h>
#include <stdio.h>
void InputData(struct movie *num[50]);
int main()
{
struct movie
{
char name[50];
int curatornum;
int votes;
};
struct movie *num[50];
for (int i = 0; i <= 50; i++)
{
num[i] = (struct movie *)malloc(1 * sizeof(struct movie *));
}
InputData(num);
for (int i = 50; i > 0; i--)
{
free(num[i]);
}
}
void InputData(struct movie *num[50])
{
//Compiler gives an error: conflicting types for 'InputData'void InputData(struct movie *num[50]
}
是否可以通过函数传递整个结构,
是的。按值传递是常态,如果你不小心,就会进行大量复制。
我正在尝试通过函数推送电影 num[1,2,3] 等...
就是上面提到的不小心抄袭。
您需要将指针和大小传递给使用数据的函数。复制会破坏性能。