Envoyé par Trap D
Lorsque tu déclares char **tab; que déclares-tu ? un pointeur vers un pointeur de chaîne de caractères.
:arrow: Première étape : tab est un pointeur, celà veut dire que tab est une variable dont la valeur est une adresse. Cette adresse doit être valide, donc intialisée par un malloc ou être l'adresse d'une autre variable existante.
:arrow: deuxième étape : tab est un pointeur initialisé, bien, mais vers quoi un pointeur de chaîne de caractères, c' est-à-dire que la valeur de l'adresse pointée par tab est le début d'une chaîne de caractère valide, c'est-à-dire que cette seconde valeur pointée doit avoir été initialisée soit par un malloc soit en donnant l'adresse d'une chaîne de caractères existante, (de plus si elle a été initialisée par un malloc, comme c'est une chaîne de caractères, il faut qu'il y ait un zéro terminal quelque part dans la zone réservée).
j'espère avoir été clair :oops: