Chiche

Bonjour
Je fais l'exo chiche de la DF 2008 et il y a un probleme dans le code source fourni:
int main(void)
{
char **tab;
int n;
int i;
int j;

scanf("%i", &n);
tab = malloc(n * sizeof(char*)); // Ici
for(i = 0; i {
tab[i] = malloc(100 * sizeof(char)); // et la
scanf("%s", tab[i]);
}
where_is_chiche(n, tab, &i, &j);
printf("(%i, %i)", i, j);
for (i = 0; i {
free(tab[i]);
}
free(tab);
return(0);
}

donc pouvez vous m'aider a le resoudre g++ dit:
chiche.cpp: In function ‘int main()’:
chiche.cpp:31: error: invalid conversion from ‘void*’ to ‘char**’
chiche.cpp:34: error: invalid conversion from ‘void*’ to ‘char*’
c surement un probleme avec malloc mais je sais pas comment le resoudre

En fait, il n'y a pas de code d'exemple C++, donc on t'en a donné une version C. Pour que ça passe en C++, suffit de caster la valeur de retour de malloc. Rajoute respectivement (char **) et (char *) devant les malloc et ça devrait marcher.

Je regénérerai les codes sources de cet exo à la prochaine occasion.

Ou sinon tu fais pas chier avec des alloc dynamiques et tu crées direct un tableau au dimensions du sujet... (100*100 en l'occurence)

Pour les flemmards :

1
2
3
4
#include 
#include 
#include 
using namespace std;

void where_is_chiche(size_t, vector , int*, int*);

int main(int, char**) {
size_t n;
cin >> n;

vector tab(n);
for(int i = 0; i cin >> tab[i];
}

int i, j;
where_is_chiche(n, tab, &i, &j);

cout

return EXIT_SUCCESS;
}

void where_is_chiche(size_t n, vector tab, int* i, int* j) {
// Votre code ici ...
}

PS : Les balises et , çà sert :D

EDIT : Bug du parseur : Impossible de faire #include dans une balise code ...
RE-EDIT : Hors de la balise code aussi xD
RE-RE-EDIT : Les espaces ne sont pas pris en compte dans la balise code ... Pratique pour l'indentation :/
RE-RE-RE-EDIT (çà fait beaucoup :D ) : Je viens de réagir : donc on peut oublier mon PS :D

Répondre au sujet

Vous devez vous enregistrer ou vous connecter pour poster des messages.