Bonjour à tous,
Question un peu vague, mais la moindre petite information sera plus que bienvenue.
J'aimerais savoir comment sont structurés les blocs de mémoire aloués dynamiquement.
Un petit exemple vaut mieux etc...

Sous windows, éxecutons le code suivant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
 
#include <string.h>
 
int main(int *argc, char **argv)
{
	char *Test = new char[0xF];
	strcpy(Test, "aaaabbbbccccdddd");
}
Au débuguage on note que Test = 0x00430090.

On effectue un dump de la mémoire aux alentours de cette adresse :
(C'est pas beau, mais sans police à chasse fixe, c'est illisible)
Code X : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
00430080  0F 00 00 00  .... -> J'ai remarqué que c'était la taille du bloc alloué
00430084  01 00 00 00  .... -> Keskecé ?
00430088  29 00 00 00  )... -> What ?
0043008C  FD FD FD FD  ýýýý -> C'est quoi ?
00430090  61 61 61 61  aaaa --------------------
00430094  62 62 62 62  bbbb   Voilà le bloc alloué
00430098  63 63 63 63  cccc
0043009C  64 64 64 64  dddd ---------------------
004300A0  00 FD FD 00  .ýý. -> ?????
004300A4  00 00 00 00  ....
De plus, est-ce que cette organisation change en fonction du système d'exploitation, de l'architecture, du language utilisé ou du temps qu'il fait dehors ?

En vous remerciant par avance, vous avez un très beau forum