[C] Help!! Renvoi de pointeur.
Résolu
igeek96
Messages postés
145
Statut
Membre
-
igeek96 Messages postés 145 Statut Membre -
igeek96 Messages postés 145 Statut Membre -
Bonjour à tous,
Je voudrais envoyer un "pointeur sur tableau vide" a une fonction pour que cette dernière remplisse le tableau vide. Voyez :
Lors de la compilation, ca plante et les erreurs suivantes sont indiquées (lignes en gras dans le code ci dessus) :
14 : error > invalide type argument of 'unary *'
24 : warning > passing argument 2 of 'mettreEnEtoiles' makes integer pointer without a cast
Pouvez vous m'aider s'il vous plait? Mercii
Je voudrais envoyer un "pointeur sur tableau vide" a une fonction pour que cette dernière remplisse le tableau vide. Voyez :
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void mettreEnEtoiles(const char chaineDeBase[], char pointeurSurResultat)
{
long i = 0, longeurChaineDeBase = 0;
char x[] = "*";
longeurChaineDeBase = strlen(chaineDeBase);
for(i = 0 ; i < longeurChaineDeBase ; i++)
{
strcat(*pointeurSurResultat, x);
}
}
int main(int argc, char *argv[])
{
char mot[] = "Exemple";
char resultat[100] = "";
char *pointeurSurResultat = &resultat[100];
mettreEnEtoiles(mot, pointeurSurResultat);
printf("%s", resultat);
return 0;
}
Lors de la compilation, ca plante et les erreurs suivantes sont indiquées (lignes en gras dans le code ci dessus) :
14 : error > invalide type argument of 'unary *'
24 : warning > passing argument 2 of 'mettreEnEtoiles' makes integer pointer without a cast
Pouvez vous m'aider s'il vous plait? Mercii
Configuration: Mac OS X Tiger XCode 2.0
4 réponses
-
Salut,
Que veux-tu faire avec ton code ? Afficher des * à la place d'une chaine ?
Cdt -
En fait je veux remplacer les lettres du mot exemple par des * dans une autre chaine :
J'ai une chaine Exemple et une chaine vide, dans la chaine vide je veux 7 * car dans exemple il y a 7 lettres dans exemple. -
Salut,
Désolé pour le temps de réponse.
J'ai refait ton code en entier, ta fonction mettreEnEtoiles était inutile.
#include <stdio.h> #include <stdlib.h> #include <string.h> int main(){ char *mot="exemple"; char *resultat=(char*)malloc(strlen(mot)*sizeof(char)); memset(resultat,'*',strlen(mot)); printf("%s\n",resultat); return 0; }
Cdt -
T'inquiète pas pour le temps de reponse... Merci beaucoup!! En fait je viens juste d'apprendre l'allocation dynamique aujourd'hui...