Как правильно выполнить приведение для сравнения указателя с явным диапазоном адресов?

Я делаю malloc, а затем хочу проверить, находится ли результат malloc в моей оперативной памяти следующим образом:

char (*message)[]; message = malloc(data_index); if(message != NULL && message >= 0x20000000 && message < 0x20030000){ //do something }

Это работает, но я получаю предупреждение: сравнение указателя и целого числа. Я бы хотел избавиться от этого предупреждения, но как? Предупреждение исчезает, когда я передаю целое число в char, но, очевидно, это ложное решение.

if(message >= (char)0x20000000) {

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

if(message >= (char**)0x20000000) {

Как получить активный оператор if без предупреждения?

Если вы работаете в системе с виртуальной памятью (в основном в каждой системе, подобной ПК за последние пару десятилетий), адреса, которые вы получаете malloc, не будут отражать фактическое физическое расположение памяти.   —  person Robin    schedule 21.10.2019

Связанный: stackoverflow.com/q/24212792/1025391   —  person Robin    schedule 21.10.2019

Более того, объявление message как указателя на массив неизвестного размера само по себе не имеет особого смысла и редко имеет смысл вообще (и строится ли он вообще?). И к вашему предупреждению, указатель на массив не того же типа, что и указатель на указатель.   —  person Robin    schedule 21.10.2019

Чего вы на самом деле пытаетесь достичь? Это похоже на проблему XY   —  person Robin    schedule 21.10.2019

Адрес памяти, разумеется, не может храниться в char типе и может не соответствовать int типу.   —  person Robin    schedule 21.10.2019

Я делаю malloc, а потом хочу проверить, находится ли результат malloc в моей RAM: возвращаемое значение malloc находится в вашей RAM, это точно и справедливо для любой реализации.   —  person Robin    schedule 21.10.2019

Дубликат: «Указатель целого / целого числа из указателя без проблемы с трансляцией   —  person Robin    schedule 21.10.2019

Возможный дубликат Указатель целого / целого числа из указателя без проблемы с трансляцией   —  person Robin    schedule 21.10.2019

Источник: ledsshop.ru

Стиль жизни - Здоровье!