Je crée un allocateur de mémoire personnalisé en C mais j'ai du mal à me déplacer dans ma matrice "mem" en utilisant un pointeur qui y a été alocalisé. J'ai besoin de déplacer un index vers la gauche pour voir si le bloc avant celui que j'essaie de libérer est vide ou non. Mais le pointeur mobile ne fonctionne pas comme je le voudrais. Alors, comment puis-je déplacer un index avant le pointeur?Naviguer dans le tableau à l'aide du pointeur
int main()
{
char mem[50];
char *pointer;
char *ptr_toFree;
pointer=(char *) &(mem[10]);
pointer = "hello";
int num = 10;
mem[9] = num;
ptr_toFree=(char*)(pointer-1);
printf("Value of mem[9] = %d\n", *ptr_toFree);
return 0;
}
'pointer-1' a un comportement indéfini. – melpomene
FWIW, 'pointer = (char *) & (mem [10]);' est simplement une façon compliquée d'écrire 'pointer = mem + 10;' –
Votre programme peut être réduit à 'printf ("% d \ n " , "bonjour" [- 1]) ', ce qui est clairement invalide. – melpomene