gpt4 book ai didi

c - 试图将对象传递给函数?

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

我正在尝试发送包含随机整数的数组(这是一个对象?)。我想将数组发送到 sort() 以便对数组进行排序,但是当我将 array 解析为 sort() 我得到以下错误:错误:取消引用指向不完整类型的指针。拜托,如果您要更改代码中的任何内容,请解释您在做什么以及为什么要这样做,因为我已经对代码现在的样子感到困惑

不允许更改array.c或array.h中的代码,void_sort()的参数也不能更改

数组.c

struct array {
int* data;
int size;
};

struct array* array_create()
{
struct array* array = (struct array*) malloc(sizeof(struct array));
array->data = (int*) malloc(sizeof(int) * 10000);
array->size = 10000;
return array;
}

数组.h

typedef struct array* ARRAY;

ARRAY array_create();

ma​​in.c

void sort (int A[], int N) 
{
// Sort the array
}

ARRAY array;
array = array_create();
sort(array->data, 100); // This gives me error: dereferencing pointer to incomplete type

最佳答案

您需要将其从 array.c 移至 array.h:

struct array {
int* data;
int size;
};

那是因为这声明了数组类型。如果你不想这样做,你可以将它复制粘贴到 main.c 中,每个人都会讨厌你,但你将实现不修改 array.h 或 array.c 的目标。

关于c - 试图将对象传递给函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21659600/

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