Mmap probleme d allocation memoire d un tableau double entrée - C - Programmation
Marsh Posté le 11-06-2004 à 11:30:27
pr allouer un tableau a double entree, il faut d abord allouer le tablo..puis boucler dessus pour allouer chaque case.. non ?
Marsh Posté le 11-06-2004 à 11:39:50
normalement oui, mais justement c la mon probleme c que ca fonctionne pas avec mmap
Marsh Posté le 11-06-2004 à 20:42:12
snif personne me répond, pourtant on m avais parler d un super Taz qui savait tout sur tout, j ai du me tromper.
Marsh Posté le 11-06-2004 à 21:14:55
ben tu veux que je te dises quoi ? pour sur que ça fonctionne, malloc est implémenté avec des mmap alors
//liste=(char **) malloc ( sizeof (char ) * 10 * 10);
//liste[0]=(char *)malloc(10*sizeof(char));
déjà là, c'est 100 char que tu alloues, et pas 10 char* ... donc boom ... commence par faire marcher pour de vrai avec malloc
Marsh Posté le 11-06-2004 à 21:24:37
les lignes en commentaires sont juste la pour se faire une idée de TOUT les essais que j ai pu faire. malheuresement, le mmap pour les tableaux a double entré n as pas l air de fonctionner comme les mallocs. car lorsque le mot est rentré dans liste[0] par fget, l adresse liste[0] n est plus valide, de la meme facon avec un strcpy.
D ailleurs un printf sur liste fonctionne.
Marsh Posté le 11-06-2004 à 21:28:01
ça ne marche déjà pas avec malloc alors commence par résoudre ce problème, ensuite on verra ...
surtout ça veut dire quoi « n as pas l air de fonctionner »
Marsh Posté le 11-06-2004 à 21:32:03
d'ailleurs je comprends pas trop ce que tu veux faire en SHARED sur un fichier, d'ailleurs, la taille du fichier, comment est-elle ? quel intérête de multiplier les mmap plutot que d'en faire un seul avec un calcul d'adresse à la main ? l'intéret d'utiliser la même projection à 36 endroits ?
Marsh Posté le 11-06-2004 à 21:37:16
Euh, avec les mallocs sa fonctionne sans probleme peut etre pas se qui sont en commentaires, mais j ai deja tester ca marche no prob.
le ca "n as l air de fonctionner" ben c'est j ai fais plusieur essai, un mmap unique, plusieur mmap different rien n y fais je perd toujours liste[0].
sinon le pkoi, ben tout simplement un projet de systeme, ou l on doit utiliser les semaphores, la memoire partagé et les files de messages.
Marsh Posté le 11-06-2004 à 21:46:10
et ça te fais rien de faire une projection en SHARED avec des pointeurs dedans et surtout de l'utiliser 36 fois pour être sur de pas savoir ce qu'il y a dedans ...
Marsh Posté le 11-06-2004 à 22:15:17
comment ca pour l utiliser 36 fois pour etre sur de pas savoir ce qu il y a dedans? je l utilise une seule fois pour mettre le "mot" a l interieur. tu ferais comment toi pour initialiser le tableau a deux dimensions avec le mmap, pour ensuite rentrer une chaine de charactere dans le premier tableau.
Marsh Posté le 11-06-2004 à 22:17:52
en utilisant mmap correctement
parce que fair des trucs du genre
liste = malloc( /* */);
liste[0] = liste
ça fait toujours du bien
Marsh Posté le 11-06-2004 à 11:02:41
Bonjour,
j ai laisser des lignes en commentaires pour vous laisser imaginer toute les solutions que j ai imaginé.
Maintenant vla le probleme, j essaye d alloué de la memoire pour un tableau a double entrée grace à mmap, seulement ca ne parait pas vraiment possible. Quelqu un aurait un petit tips, merci d avance.
p.s: il me balance un segmentation fault
Message édité par spontex le 11-06-2004 à 11:08:05