C - 预期'letters_t' {aka 'struct '} <anonymous>但参数的类型为 'letters_t *' {aka 'struct <ano



我正在使用函数中的结构,但当我尝试运行代码时,我会收到以下错误:

注意:应为"pixels_t"{aka"struct"},但参数的类型是"pixels _t*"{又名"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){
}   

提前谢谢你的回答。

函数采用结构,但主程序希望将指针传递给结构。您需要相应地更改此功能:

void fillLetterArray(letters_t *letters);
int main (void)
{
letters_t letterArray[100];
fillLetterArray(letterArray);
}
void fillLetterArray(letters_t *letters)
{

}   

我建议您在没有充分理由的情况下放弃(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) {
...
}

相关内容

最新更新