这是我的C程序......
#include <stdio.h>
struct xyx {
int x;
int y;
char c;
char str[20];
int arr[2];
};
int main(void)
{
struct xyz a;
a.x = 100;
printf("%d\n", a.x);
return 0;
}
这是我得到的错误......
按ENTER或键入命令继续
13structtest.c: In function ‘main’: 13structtest.c:13:13: error: storage size of ‘a’ isn’t known 13structtest.c:13:13: warning: unused variable ‘a’ [-Wunused-variable]
答案 0 :(得分:22)
您的结构称为struct xyx
,但a
的类型为struct xyz
。 Once you fix that, the output is 100
#include <stdio.h>
struct xyx {
int x;
int y;
char c;
char str[20];
int arr[2];
};
int main(void)
{
struct xyx a;
a.x = 100;
printf("%d\n", a.x);
return 0;
}
答案 1 :(得分:4)
这样说:struct xyx a;
答案 2 :(得分:4)
您将结构定义为xyx,但您正在尝试创建名为xyz的结构。
答案 3 :(得分:4)
正确的错字
struct xyz a;
到
struct xyx a;
最好你可以试试typedef,轻松b
答案 4 :(得分:3)
您将结构定义为xyx
,但在您的主体中,您使用struct xyz a;
,它只创建一个不同命名结构的前向声明。
尝试使用xyx a;
代替该行。
答案 5 :(得分:3)
对于有这个问题的人来说,这是一个拼写错误。检查结构欺骗和结构的拼写
答案 6 :(得分:2)
在这种情况下,用户在定义及其用法方面犯了错误。
如果有人对结构进行了typedef
,那么在不使用struct
的情况下应该使用相同的结构。
typedef struct
{
int a;
}studyT;
在函数中使用时
int main()
{
struct studyT study; // This will give above error.
studyT stud; // This will eliminate the above error.
return 0;
}
答案 7 :(得分:1)
1) 在 main 函数之前声明结构体。 它对我有用。 2) 并修正变量名的拼写错误(如果有的话)
答案 8 :(得分:0)
我通过更正代码中的一个简单错误解决了我的问题。
using System;
using System.Collections.Generic;
class Program
{
static void Main(string[] args)
{
List<string> mprovinces = new List<string> { "Nova Scotia", "New Brunswick", "Prince Edward Island", "Nova Scotia" };
Console.WriteLine("Enter one of the following maritime provinces: \nNova Scotia, \nNew Brunswick, \nPrince Edward Island\n");
string input2 = Console.ReadLine();
for (int i = 0; i < mprovinces.Count; i++)
{
bool match = mprovinces[i] == input2;
if (match)
{
Console.WriteLine(i);
}
else
{
Console.WriteLine("Sorry, this is not in the list");
}
}
}
}
声明带来了错误。
应该是,
list_t new_end_code