Как можно использовать константы указателя для указания на определенный c адрес памяти (например, адрес, такой как 0x0001a00) в ANSI C? - PullRequest
0 голосов
/ 26 февраля 2020

Я экспериментирую с указателями в C программировании для проекта и искал несколько советов о том, есть ли другие способы инициализации константы указателя на адрес памяти 0x0001a000.

Следующее было моим подход:

volatile int *firstAddress = (volatile int *)0x0001a000; 
printf("First Memory address is: %p\n", firstAddress);

Существуют ли более короткие способы инициализации вышеуказанного в C программировании?

1 Ответ

1 голос
/ 26 февраля 2020

Это именно то, как вы бы инициализировали такую ​​константу, однако результаты будут очень спецификацией реализации c.

Если данный адрес не является явным образом задокументированным как действительный, вы, вероятно, будете вызывать неопределенное поведение .

Вы также не можете сделать его более кратким, чем этот. Для преобразования между целыми числами и указателями требуется приведение.

...