
Envoyé par
tomasi
bonjour,
j'ai le code suivant :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| #include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define N 20
int main(){
char* tab[N];
char chaine[30]="abc";
tab[0] = malloc(strlen(chaine) + 1);
strcpy(tab[0], chaine);
printf("%s", tab[0]);
system("pause");
return EXIT_SUCCESS;
} |
à la compilation, il me renvoie
invalid conversion from `void*' to `char*'
pour la ligne
tab[0] = malloc(strlen(chaine) + 1);
pourtant tab est un tableau de pointeurs vers des chaines de caractères...
j'avoue ne pas comprendre
puisque tu programme en C++ (tu a un comppilateur C++) alors:
tu doit convertir le pointeur retourner par malloc au type de 'tab',c-a-d char* (faire un cast)
donc changer la ligne:
tab[0] = malloc(strlen(chaine) + 1);
par:
tab[0] = (char*) malloc(strlen(chaine) + 1);
Partager