我正在使用函数中的结构,但是当我试图运行代码时,我会得到以下错误:
注:预期的'pixels_t‘{aka 'struct '}但参数类型为'pixels_t *’{aka 'struct *'}
这是我的代码:
typedef struct{
unsigned int a, b, c;
}letters_t;
void fillLetterArray(letters_t letters);
int main (void){
letters_t letterArray[100];
fillLetterArray(letterArray);
}
void fillLetterArray(letters_t letters){
} 提前谢谢你的回答。
发布于 2022-10-18 17:28:51
您的函数采用结构,但您的主程序希望传递指向结构的指针。您需要相应地更改此功能:
void fillLetterArray(letters_t *letters);
int main (void)
{
letters_t letterArray[100];
fillLetterArray(letterArray);
}
void fillLetterArray(letters_t *letters)
{
} 发布于 2022-10-18 18:10:09
我建议您在没有充分理由的情况下避免使用(Ab) typedef,这是为了创建抽象,并且在这个上下文中没有优势。
如果要填充数组(顾名思义),那么函数fillLetterArray需要接受指向数组的指针;此外,最好在参数中包含数组的长度:
#include <stdint.h> // for size_t
struct letters {
unsigned int a, b, c;
};
static void fillLetterArray(struct letters *letters, size_t length);
int main (void) {
struct letters_t letterArray[100];
fillLetterArray(letterArray, 100);
}
void fillLetterArray(struct letters *letters, size_t length) {
...
}https://stackoverflow.com/questions/74115018
复制相似问题