
 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