Rechercher : dans
Par :

[C]:26: error: incompatible types in assign

Dernière réponse le 20 jun 2007 à 10:20:19 sbix, le 19 jun 2007 à 21:02:00 
 Signaler ce message aux modérateurs

Salut à tous
Je travaille à present sur les structures et j'ai rencontré un petit problème.
Mon programme consiste à créer une structure, enduite une variable du type de ma structure, puis l'initialiser avec une fonction.
Pour cela j'ai utilisé les pointeurs. Mais lors de la compilation, mon compilateur [gcc sous linux], me donne l'erreur :26: error: incompatible types in assignment.
Ce qui veux dire, je crois, que qu'il y a un problème avec les types de variables.
Voici mon code source :

#include<stdio.h> 
#include<string.h> 
 
 
typedef struct Info_perso Info_perso; 
struct Info_perso 
	{ 
	char nom[100]; 
	char prenom[100]; 
	int age; 
	}; 
 
void initialiser(Info_perso* pointeur_mehdi); 
int main() 
{ 
 
Info_perso mehdi; 
initialiser(&mehdi); 
printf("Nom: %s\nPrénom: %s\nAge: %d", mehdi.nom, mehdi.prenom, mehdi.age); 
 
return 0; 
} 
 
void initialiser(Info_perso* pointeur_mehdi) 
{ 
(*pointeur_mehdi).nom = ""; 
(*pointeur_mehdi).prenom = ""; 
(*pointeur_mehdi).age = 0; 
}


Merci d'avance pous vos explications.
Configuration: Linux 
Firefox 1.5.0.7

Meilleures réponses pour « [C]:26: error: incompatible types in assign » dans :
Parse error: syntax error, unexpected $end VoirLorsque l'on programme en Php, on se retrouve inévitablement un jour devant ce genre d'erreur: Parse error: syntax error, unexpected $end in Command line code on line 1 En français, ça signifie grossièrement: "Erreur d'analyse du code: il y a une...
Les variables en C++ VoirLes variables en C++ 1. Les différents types de variables 1.1 bool 1.2 char 1.3 unsigned short int 1.4 short int 1.5 unsigned long int 1.6 long int 1.7 int (16 bits) 1.8 int (32 bits) 1.9 unsigned int (16 bits) 1.10 unsigned int (32...
PHP Parse error: unexpected '&lt;' in ... eval()'d code on l VoirSymptômes Lors de l'utilisation de la fonction eval() en PHP, ce dernier se plaint et vous affiche un message de la forme suivante : PHP Parse error: syntax error, unexpected '
Télécharger Visual C++ Express VoirVisual C++ Express est une version "gratuite" et allégée de Visual Studio ; l'utilisation requiert l'inscription sur le site de Microsoft. Cet environnement de développement permet de créer des application Win32 ou du .NET C.
Langage C - Les types de données VoirLes types de données Les données manipulées en langage C sont typées, c'est-à-dire que pour chaque donnée que l'on utilise (dans les variables par exemple) il faut préciser le type de donnée, ce qui permet de connaître l'occupation mémoire (le...
Les structures en langage C VoirDifférence entre une structure et un tableau Un tableau permet de regrouper des éléments de même type, c'est-à-dire codés sur le même nombre de bits et de la même façon. Toutefois, il est généralement utile de pouvoir rassembler des éléments de...

1

sfel, le 19 jun 2007 à 21:39:09

Cpp1.cpp(26) : error C2440: '=' : cannot convert from 'char [1]' to 'char [100]'
There is no context in which this conversion is possible
cpp1.cpp(27) : error C2440: '=' : cannot convert from 'char [1]' to 'char [100]'
There is no context in which this conversion is possible

voilà j'ai lancer ton code sur mon pc (visual studio C++), pour savoir à qu'elle ligne il merdait, et apparement ce sont ces deux là :

(*pointeur_mehdi).nom = "";
(*pointeur_mehdi).prenom = "";

ps : il m'affiche deux erreurs et 0 warning, pour info

maintenant tu vois tt seul où est ton problème ^^
L'ennemi est bête : il croît que c'est nous l'ennemi, alors que c'est lui !
GLOUGLOU ...

Répondre à sfel

2

sbix, le 19 jun 2007 à 21:46:18

:D
Oui je savais que c'est dans la ligne 26 et 27... mais je ne vois pas comment résoudre ça...
Je pense que ce n'est pas la bonne façon d'initialiser un char, ou alors qu'il ne faut pas procéder ainsi en cas de pointeurs...

Répondre à sbix

3

Doctor C, le 19 jun 2007 à 21:46:06

Ça fait un bout de temps que j'ai fait du C mais, pourquoi tu fais des tableaux de char?

Tu peux pas mettre des strings? Echo "Lima Mike Alfa";

Répondre à Doctor C

4

sbix, le 19 jun 2007 à 21:49:21

Comment cela ?

Répondre à sbix

5

Doctor C, le 19 jun 2007 à 22:22:50
  • +1

Ben, remplir un tableau de char c'est plus compliqué que remplir un string (selon moi)

si dans ta structure, ton nom et prénom était des string, tes assignations aux lignes 26-27 marcheraient surement. Echo "Lima Mike Alfa";

Répondre à Doctor C

6

Char Snipeur, le 20 jun 2007 à 00:12:41

Oui, c'est pas terrible comme utilisation le "=".
ce que tu fait dans ton égalité, c'est une modification de pointeur. Je pense qu'il est plus intélligent de copier les lettre de la chaine dans la chaine initial.
Pour cela utilise la fonction strcpy(char *dest, const char *src).
Un conseil, plutot que la notation lourde (*pointeur_mehdi).nom utilise pointeur_medhi->nom
Mais l'idéal reste les string Salutation ! Quand on sait pas, on touche pas !JBT
Char Snipeur

Répondre à Char Snipeur

7

 sfel, le 20 jun 2007 à 10:20:19

As tu essayez d'utiliser strcpy ou strncpy ???
avec l'include <string.h>
L'ennemi est bête : il croît que c'est nous l'ennemi, alors que c'est lui !
GLOUGLOU ...

Répondre à sfel