En C, dans un environnement Unix (Plan9), j'ai un tableau en tant que mémoire.Int dans un tableau de mémoire simulé de UCC
uchar mem[32*1024];
I besoin que matrice pour contenir différents domaines, tels qu'un int (entier) pour indiquer la taille de la mémoire libre et avaliable. Alors, je l'ai essayé ceci:
uchar* memp=mem;
*memp=(int)250; //An example of size I want to assign.
Je sais que la taille d'un int est de 4, donc je dois forcer la coulée ou quelque chose comme ça, que le contenu des quatre premières tranches de mem ont le nombre 250 dans ce cas, c'est gros endian.
Mais le problème est que lorsque j'essaie de faire ce que j'ai expliqué, cela ne fonctionne pas. Je suppose qu'il y a une erreur avec la conversion des types. J'espère vous demander, comment pourrais-je forcer que mem [0] à mem [3] aurait la taille indiquée, représentée comme un int et non comme un uchar?
Merci à l'avance
Ok, merci, ça marche. Et j'ai le point. –
Mais, si je veux assigner un pointeur à une autre partie de mem (le tableau des caractères non signés), au début à zéro. Est-ce que je pourrais faire quelque chose comme ceci?: * ((void *) memp) = nil; Il ne compile pas. :( –
Il est jamais possible de déréférencer un pointeur (void *). – ephemient