首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >预期的'letters_t‘{aka 'struct <anonymous>'}但参数类型为'letters_t *’{aka 'struct <anonymous> *'}

预期的'letters_t‘{aka 'struct <anonymous>'}但参数类型为'letters_t *’{aka 'struct <anonymous> *'}
EN

Stack Overflow用户
提问于 2022-10-18 17:21:46
回答 2查看 61关注 0票数 0

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

注:预期的'pixels_t‘{aka 'struct '}但参数类型为'pixels_t *’{aka 'struct *'}

这是我的代码:

代码语言:javascript
复制
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){

}   

提前谢谢你的回答。

EN

回答 2

Stack Overflow用户

发布于 2022-10-18 17:28:51

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

代码语言:javascript
复制
void fillLetterArray(letters_t *letters);

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

void fillLetterArray(letters_t *letters)
{
 
}   
票数 1
EN

Stack Overflow用户

发布于 2022-10-18 18:10:09

我建议您在没有充分理由的情况下避免使用(Ab) typedef,这是为了创建抽象,并且在这个上下文中没有优势。

如果要填充数组(顾名思义),那么函数fillLetterArray需要接受指向数组的指针;此外,最好在参数中包含数组的长度:

代码语言:javascript
复制
#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) {
    ...
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74115018

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档