Malloc et segmentation fault sous Linux
Bonjour. Je resitue le projet que je dois réaliser : un programme qui doit donner l'arborescence du repertoire racine d'un serveur donné en paramétre, en extraire les fichiers web, scanner les liens et indiquer les liens morts.
L'astuce consiste à coder un programme fonctionnant sous Windows ET sous Linux.
Sous Windows, pas de probléme (enfin si, y'en a eu mais ca marche :D )
Sous Linux, là, ca marche pas. Aucune erreur à la compilation, même pas un warning sur les 400 lignes de code mais à l'execution, je me prend un trés propre "erreur de segmentation" :? . J'ai localisé le probléme
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
|
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <dirent.h>
# define MAX 1000
int main(int argc, char *argv[])
{
char **tableauRep;
tableauRep=(char**)malloc(MAX*sizeof(char*));
for (i=0;i<MAX;i++) /* initialisation du tableau qui reccueillera le noms des repertoires*/
{
tableauRep[i]=(char*)malloc(300*sizeof(char));
} |
Je ne met que ce qui me semble essentiel. L'allocation de mémoire ne se fait pas sous Linux. Pourquoi se fait-elle sous Windows sans soucis. Dois je me résoudre à faire un tableau statique ?