Problemes avec pointeurs/tableaux adresses - Programmation
Marsh Posté le 26-09-2003 à 19:35:16
y a un autre truc qui m embete... c est que mem_heap est un tableau de caracteres... et que je vais mettre des pointeurs dedans
Marsh Posté le 26-09-2003 à 19:36:16
tu veux pas nous dire plutot ce que tu cherches à faire ?
Marsh Posté le 26-09-2003 à 19:37:26
Theorie du chaos a écrit : y a un autre truc qui m embete... c est que mem_heap est un tableau de caracteres... et que je vais mettre des pointeurs dedans |
nan
dans mem_heap tu mets pas des pointeurs mais des caracteres puiqu'il estd eclaré comme tableau de char et pas de char *
Marsh Posté le 26-09-2003 à 19:40:33
Taz a écrit : tu veux pas nous dire plutot ce que tu cherches à faire ? |
gestion de memoire avec buddy system
on m impose de faire jouer a un tableau de caracteres le role de la zone memoire...
et on me dit que la table des zones libres tzl regroupe les tetes de liste des zones libres. Je dois placer au debut de chaque zone libre (situee dans mem_heap) un pointeur vers la zone libre suivante de meme taille
Marsh Posté le 26-09-2003 à 19:55:26
a l initialisation tous les pointeurs de tzl sont nuls sauf le dernier, qui pointe vers toute la zone mem_heap
en debut de mem_heap il me faut ensuite un pointeur nul, comme le tableau entier est la seule zone libre.
Marsh Posté le 26-09-2003 à 19:59:40
en fait on veut meme pas mettre de caracteres dans le tableau
mais l enonce me dit de prendre ca
Marsh Posté le 26-09-2003 à 20:09:30
j ai l image en tete de ce que je veux coder...
et j ai les structures qu on m impose...
peut etre que je comprends mal mon enonce... mais j arrive pas a voir ou...
Marsh Posté le 26-09-2003 à 20:09:51
Theorie du chaos a écrit : en fait on veut meme pas mettre de caracteres dans le tableau |
en C il est "usuel" d'utiliser un ptr de type "char*" pour pointer un tableau "d'octets bruts" (même esprit que les byte[] en java). C'est sans doute pour ça que ton énnoncé préconise un char* pour désigner une zone de mémoire allouée.
Marsh Posté le 26-09-2003 à 20:13:29
SchnapsMann a écrit : |
dans l enonce j ai exactement:
#define MAX_INDEX 20
#define HEAP_SIZE ((1<<MAX_INDEX)*sizeof (size_t))
char mem_heap[HEAP_SIZE]
ou size_t est synonyme de unsigned long
Marsh Posté le 26-09-2003 à 20:17:51
quand on me dit de placer un pointeur au debut de ma zone libre, c'est bien dans ce tableau la?
il faut caster?
Marsh Posté le 26-09-2003 à 19:31:34
j ai un tableau de pointeurs
void *tzl[MAX_INDEX+1];
je veux que sa derniere case tzl[MAX_INDEX] pointe vers le debut d un tableau de caracteres
char mem_heap[HEAP_SIZE];
et que le debut de tableau de caracteres soit un pointeur NULL
je m y perds un peu avec les tableaux, les pointeurs, les *
je pensais faire tzl[MAX_INDEX] = &mem_heap
et mem_heap[0] = NULL
mais j ai pas encore moyen de verifier ce que ca rend