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.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top