gpt4 book ai didi

c - 错误 : invalid use of undefined type struct in C

转载 作者:行者123 更新时间:2023-12-01 22:04:16 35 4
gpt4 key购买 nike

我在 C 中编译时收到此错误:

error: invalid use of undefined type ‘struct block’
blocks[0].i=1;
error: invalid use of undefined type ‘struct block’
blocks[0].j=1;
error: invalid use of undefined type ‘struct block’
blocks[0].k=1;

这里是我的代码:

#include<stdlib.h>
#include<stdio.h>
void read_block(blocks);

int main()
{
struct block
{
int i,j,k;
} *blocks;

blocks=malloc(sizeof(struct block));
read_block(blocks);
printf("primo val %d\n",blocks[0].i);
}
void read_block(struct block *blocks)
{
blocks[0].i=1;
blocks[0].j=2;
blocks[0].k=3;


}

return(blocks);
}

block 已定义,它们应该是一个结构。那么为什么编译器看不到它们呢?

最佳答案

因为您在 main() 中定义了它们,所以它们的作用域只是主要()。在它之外,它们不存在。要解决此问题,请移动声明:

struct block
{
int i,j,k;
};

int main()
{
struct block *blocks;
/* ... */

另请注意,您需要在参数中声明类型函数声明列表:

void read_block(blocks); /* bad */
void read_block(struct block *blocks);

最后,在末尾多了一个return语句你的代码会阻止这个程序编译。我假设这只是粘贴代码时的错字问题。

关于c - 错误 : invalid use of undefined type struct in C,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52741904/

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