initialisation du pointeur de carbonisation
Question
Je suis venu sur une ligne qui est donnée ci-dessous
char *ch=(char*)3000
Je veux connaître la signification de cette ligne .....
Pas de solution correcte
Autres conseils
On dirait que le pointeur, ch, est attribué une adresse mémoire absolue 3000. En général, une très mauvaise idée, à moins que vous travaillez sur un système embarqué sans pagination et vous savez exactement ce qui est à l'emplacement de la mémoire 3000.
voir peut-être le reste du code serait pertinent ...
Ce pointeur peut être par rapport à la secteur dans lequel il se trouve (sur les processeurs Intel). Dans ce cas, le 3000
pourrait être simplement un indice dans ce segment, défini précédemment dans le programme, où nous n'avons pas les lignes.
Cela dépend de l'architecture du système, l'environnement, le système d'exploitation, le compilateur, le reste du code (et le programmeur ...).
est-il pas évident?
La valeur numérique « 3000 » est coulé à un pointeur de char, à savoir ch
est initialisé à l'adresse de mémoire 3000 (décimal).
AFAIK, 3000 est sans adresse spéciale / valeur, et dans la plupart des cas, l'accès à elle entraînerait une erreur de segmentation ou une valeur de déchets.
Si vous voyez que dans le code, peut-être qu'il est mal utilisé au lieu d'un (void *), par exemple en cas de cartes où vous avez des paires de valeurs clés, le résultat peut être jeté dans un entier dans ce cas.