Pregunta

Me he encontrado con una línea que se da a continuación

           char *ch=(char*)3000

Quiero saber el significado de esta línea .....

No hay solución correcta

Otros consejos

Parece que el puntero, ch, está siendo asignada una dirección de memoria absoluta 3000. En general, una muy mala idea, a menos que usted está trabajando en un sistema embebido sin paginación y sabes exactamente lo que es en la posición de memoria 3000.

Tal vez ver el resto del código sería relevante ...

Esto podría ser puntero en relación con el segmento en el que reside (en procesadores Intel). En este caso el 3000 podría ser simplemente un índice en ese segmento, definido anteriormente en el programa, en el que no tenemos las líneas.

Esto depende de la arquitectura del sistema, el entorno, el sistema operativo, el compilador, el resto del código (y el programador ...).

¿No es obvio?

El valor numérico "3000" se echó a un puntero char, es decir ch se inicializa a la dirección de memoria 3000 (decimal).

Que yo sepa, 3000 hay una dirección / valor especial, y en la mayoría de los casos el acceso a que daría lugar a fallo de segmentación o un valor de basura.

Si usted ve que en el código, puede ser que se utiliza de forma incorrecta en lugar de un (* void), por ejemplo en caso de mapas donde se tiene pares de valores clave, el resultado puede ser lanzado en un entero en ese caso.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top