cs_Tidam
Messages postés124Date d'inscriptionjeudi 2 janvier 2003StatutMembreDernière intervention16 février 2006
-
18 mai 2005 à 19:42
steve_clamage
Messages postés475Date d'inscriptiondimanche 3 octobre 2004StatutMembreDernière intervention11 août 2006
-
19 mai 2005 à 18:24
Voili voilou, j'ai une erreur de compilation avec ce petit bout de code :
void addop(char opnick[50])
{
nboper++;
oper = realloc(oper, nboper * sizeof(char));
oper[nboper - 1] = new char [50];
strcpy(oper[nboper - 1],opnick);
}
Sachant que les declaration qui precedent sont :
char * oper [1];
int nboper = 1;
Voila ce que le compilateur me dit :
C:\***\main.cpp In function `void addop(char*)':
961 C:\***\main.cpp incompatible types in assignment of `void*' to `char*[1]'
Si quelqu'un a une petite idee, c'est la premiere fois que j'essaye d'utiliser realloc ... ^^
ymca2003
Messages postés2070Date d'inscriptionmardi 22 avril 2003StatutMembreDernière intervention 3 juillet 20067 19 mai 2005 à 09:39
char * oper [1];
=> cela définit un tableau de pointeurs.
pour utiliser réalloc dans ton cas :
char* oper;
oper = (char*)malloc(<taille initiale>*sizeof(char)); // la première allocationoper (char*)realloc(oper, <nouvelle taille>*sizeof(char)); // pour les allocations suivantes.> cela augmentera la taille d'un tableau de char ou d'une chaîne de caractères.
si tu souhaites régler la taille d'un tableau de char* ie un tableau de chaines :
char** oper;
oper = (char**)malloc(<taille initiale>*sizeof(char*)); // la première allocation
oper = (char**)realloc(oper, <nouvelle taille>*sizeof(char*)); // pour les allocations suivantes.