1

Bonjour.
Dans la Pseudo Librairie 'MyLiB', je veux pouvoir lire et écrire les bytes d'une variable à l'aide d'un pointeur quelconque c'est à dire char *, short *, long *.

J'ai vite compris qu'il y avait des contraintes de position au vu des crash subis.
Pouvez vous me dire exactement pour chacun des pointeurs, les contraintes .

Voici les intuitions que j'ai eu :
- Le char * peut se trouver à n'importe quel byte
- Le short * uniquement au byte paire
- Le long * uniquement aux bytes multiple de 4

2

Presque ^^

Quand tu fais une lecture/écriture en mémoire sur un 68000, un octet peut être lu/écrit à n'importe quelle adresse mais un word (16bits) ou un long (32 bits) doivent avoir pour adresse de base une adresse paire.

Après, le quand le C fait le l'arithmétique sur les pointeurs, il ajoute pour chaque incrément la taille en octets du type de pointeur au pointeur, et là ou aura bien des variations de 1 pour un char*, de 2 pour un short* et de 4 pour un long*.
avatar
Que cache le pays des Dieux ? - Forum Ghibli - Forum Littéraire

La fin d'un monde souillé est venue. L'oiseau blanc plane dans le ciel annonçant le début d'une longue ère de purification. Détachons-nous à jamais de notre vie dans ce monde de souffrance. Ô toi l'oiseau blanc, l'être vêtu de bleu, guide nous vers ce monde de pureté. - Sutra originel dork.

3

> - Le *long uniquement aux bytes multiple de 4
Ca, c'est sur les RISC tels que l'ARM (et probablement bien d'autres). Ici, on a un CISC ancien. Le bus 16 bits tolère très bien les écritures de longs à des adresses multiples de 2, sans pénalité de temps comme sur les CISC modernes.
avatar
Membre de la TI-Chess Team.
Co-mainteneur de GCC4TI (documentation en ligne de GCC4TI), TIEmu et TILP.
Co-admin de TI-Planet.

4

(c'est char*, pas *char)

« The biggest civil liberty of all is not to be killed by a terrorist. » (Geoff Hoon, ministre des transports anglais)

5

désolé ! je rectifie cette erreur. faut dire que je suis un peu fatigué par tout ce débogguage.

Merci à tous. je vais reéssayer. c'est actuellement la seule fonction qui fait crashé ma Librairie.