Programme en c
Résolu/Fermé
A voir également:
- Programme en c
- Programme demarrage windows 10 - Guide
- Mettre en veille un programme - Guide
- Cette action ne peut pas être réalisée car le fichier est ouvert dans un autre programme - Guide
- Désinstaller programme windows 10 - Guide
- Sms programmé - Guide
1 réponse
Char Snipeur
Messages postés
9813
Date d'inscription
vendredi 23 avril 2004
Statut
Contributeur
Dernière intervention
3 octobre 2023
1 298
15 sept. 2011 à 11:39
15 sept. 2011 à 11:39
C'est normal, tu essais de mettre une chaine de caractère dans un caractère. Remplace "@" (qui est une chaine) par '@' (qui est un caractère).
Ensuite, typedef te défini un type pas une variable. Enlève le typedef (mais pas ce qu'il y a derrière) ça devrais aller mieux.
Pour finir a=b si a et b sont des tableaux NE recopie PAS le tableaux b dans a. Il peut le faire, mais ce n'est pas standard.
Dit nous si tu as encore des erreurs après ces modifications.
Ensuite, typedef te défini un type pas une variable. Enlève le typedef (mais pas ce qu'il y a derrière) ça devrais aller mieux.
Pour finir a=b si a et b sont des tableaux NE recopie PAS le tableaux b dans a. Il peut le faire, mais ce n'est pas standard.
Dit nous si tu as encore des erreurs après ces modifications.
15 sept. 2011 à 14:14
piece.c:11:8: error: incompatible types when assigning to type `char[4][4]' from type `char (*)[2]'
piece.c:12:2: error: `struct piece' has no member named `initializer'
piece.c:13:2: error: `struct piece' has no member named `afficher'
piece.c: In function `initializer':
piece.c:17:3: error: `piece' undeclared (first use in this function)
piece.c:17:3: note: each undeclared identifier is reported only once for each function it appears in
piece.c:17:9: error: expected `;' before `P'
piece.c: In function `afficher':
piece.c:23:1: error: `piece' undeclared (first use in this function)
piece.c:23:7: error: expected `;' before `P'
15 sept. 2011 à 14:16
15 sept. 2011 à 15:07
Remarque : initializer prend 3 paramètres, et tu l'utilises avec 4 ! Enlève le dernier paramètre.
Enfin, soit tu utilises ta variables globales struct piece P (sans le typedef comme le disait CharSnipeur) soit tu déclares des variables locales struct piece, mais tu ne peux pas déclarer "piece P", 1) car il te manque le mot clé struct, 2) car P est déjà déclaré globalement
15 sept. 2011 à 15:24
Alors la notion P.hauteure_piece n'existe pas.Comment donc les initiliser?
alors je peux pas déclarer des fonctions dans le fichier struct et puis le définir dans piece.h
j'ai envoyé un autre question sur le forum qui contient mon dernier correction de code.
15 sept. 2011 à 15:31
#include<stdio.h>
#include"piece.h"
int main()
{
piece P;int i,j;
for(i=0;i<2;i++)
P.forme[i][0]='@';
for(j=1;j<3;j++)
P.forme[0][j]='@';
initializer(3,2,P.forme,P);
afficher(P);
return 0;
}
void initializer(int n, int p, char tableau[4][4],piece P)
{
P.hauteur_piece=n;
P.largeure_piece=p;
int i,j ;
for( i=0;i<=4;i++)
for(j=0;j<=4;i++)
{
P.forme[i][j]=tableau[i][j];
}
}
void afficher(piece P)
{
int i,j;
for( i=0;i<=4;i++)
for(j=0;j<=4;i++)
{
printf("%c",P.forme[i][j]);
}
}
#include<stdio.h>
typedef struct
{
int hauteur_piece;
int largeure_piece;
char forme[4][4];
} piece;
struct piece P;
piece.c:15:6: warning: conflicting types for `initializer'
piece.c:10:1: note: previous implicit declaration of `initializer' was here
piece.c:29:6: warning: conflicting types for `afficher'
piece.c:11:1: note: previous implicit declaration of `afficher' was here
piece.h:8:16: error: storage size of `P' isn't known