Ceci est mon programme 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;
}
C'est l'erreur que je reçois ...
Appuyez sur ENTRÉE ou tapez la commande pour continuer
13structtest.c: Dans la fonction 'main': 13structtest.c: 13: 13: erreur: la taille de stockage de 'a' n'est pas connue 13structtest.c: 13 : 13: avertissement: variable inutilisée 'a' [-Wunused-variable]
Votre struct s'appelle struct xyx
mais a
est de type struct xyz
. ne fois que vous avez corrigé cela, la sortie est 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;
}
Dites-le comme ceci: struct xyx a;
vous définissez la structure comme xyx mais vous essayez de créer la structure appelée xyz.
typo correcte de
struct xyz a;
à
struct xyx a;
Mieux vaut essayer typedef, facile à b
Vous définissez votre structure comme xyx
, mais dans votre principal, vous utilisez struct xyz a;
, qui crée uniquement une déclaration directe d'une structure différemment nommée.
Essayez d'utiliser xyx a;
au lieu de cette ligne.
Pour tous ceux qui ont ce problème, c'est une erreur de frappe. Vérifiez l'orthographe de vos struct delcerations et votre struct
Dans ce cas, l'utilisateur a fait une erreur de définition et d'utilisation. Si quelqu'un a fait un typedef
à une structure, la même chose doit être utilisée sans utiliser struct
. Voici l'exemple.
typedef struct
{
int a;
}studyT;
Lors de l'utilisation dans une fonction
int main()
{
struct studyT study; // This will give above error.
studyT stud; // This will eliminate the above error.
return 0;
}