Pergunta

Eu encontrei uma linha que é dada abaixo

           char *ch=(char*)3000

Eu quero saber o significado desta linha .....

Nenhuma solução correta

Outras dicas

Parece que o ponteiro, CH, está sendo atribuído um endereço de memória absoluto 3000. Geralmente uma má idéia, a menos que você esteja trabalhando em um sistema incorporado sem paginação e você sabe exatamente O que está no local da memória 3000.

Talvez ver o resto do código seja relevante ...

Aquele ponteiro pode ser relativo ao segmento em que reside (nos processadores Intel). Neste caso o 3000 Pode ser simplesmente um índice nesse segmento, definido anteriormente no programa, onde não temos as linhas.

Isso depende da arquitetura do sistema, do ambiente, do sistema operacional, do compilador, do restante do código (e do programador ...).

Não é óbvio?

O valor numérico "3000" é lançado para um ponteiro de Char, ou seja, ch é inicializado no endereço de memória 3000 (decimal).

Afaik, 3000 não é um endereço/valor especial e, na maioria dos casos, o acesso a ele resultaria em falha de segmentação ou em um valor de lixo.

Se você vê isso no código, pode ser usado incorretamente em vez de um (vazio*), digamos no caso de mapas em que você possui pares de valor -chave, o resultado pode ser lançado em um número inteiro nesse caso.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top