Toutes les allocations du main puisqu'elles concernent des tableaux de pointeurs sur char (et non pas des tableaux de char comme je l'avais écrit précédemment de manière erronnée).
Type: Messages; Utilisateur: diogene
Toutes les allocations du main puisqu'elles concernent des tableaux de pointeurs sur char (et non pas des tableaux de char comme je l'avais écrit précédemment de manière erronnée).
Désolé, j'avais lu et répondu trop vite. :oops:
Effectivement ce sont bien des char **, mais l'allocation de Pouet_forever est fausse :
char **tableau_de_mots = malloc(MAX* sizeof(char*));
...
int main(void)
{
clock_t debut,fin;
/* Mes Tableaux */
lettres tab[7];
char **tableau_de_mots = malloc(MAX*sizeof(char*));
char **taille2 = malloc(MT2*sizeof(char*));
char...
Le problème n'est pas sur les malloc (il y a de la place sur le tas) mais sur ces tableaux sur la pile et qui la font exploser
char *tableau_de_mots[MAX];
char *taille2[MT2];
char *taille3[MT3];...
C'est surprenant qu'une si faible quantité d'allocation ne passe pas. Peux-tu montrer le code en question ?
ben, quand il n'y a plus de mémoire disponible.
Si c'est le cas, il faut vérifier que tu n'alloues pas inutilement ou trop généreusement.
Combien as-tu (environ) de mots de 2,3,...15 lettres à...
Eh bien ne pas écrire dans des zones non allouées ! :D
En pratique
- allouer la taille suffisante pour chaque chaîne sans oublier qu'il faudra en plus de la place pour le '\0' terminal.
et...
Tout peut éventuellement sembler marcher tant que l'écriture dans une zone mémoire non allouée n'écrase pas une autre donnée.
Mais dès qu'on a fait cela, il faut considérer le programme comme...
Toutes les allocations sont fausses : si strlen(tabmot[i])== N, alors on doit allouer N+1 char, pas N (strlen() ne compte pas le '\0' terminal mais strcpy() le met)
void tableau_2 (char...
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.