Вопросы

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

Я делаю 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

Читать:
Git считает, что файл в каталоге с символической ссылкой был удален после воссоздания символической ссылки, как я могу это исправить?

Чего вы на самом деле пытаетесь достичь? Это похоже на проблему 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

Похожие записи

Инструмент для проверки файлов YAML для Kubernetes в автономном режиме

admin

Отправка POST-запроса в файл PHP через arduino

admin

Git считает, что файл в каталоге с символической ссылкой был удален после воссоздания символической ссылки, как я могу это исправить?

admin

Rails сохраняет объект внутри метода

admin

Как я могу вызвать функцию RefreshCache с помощью Lambda?

admin

Определение переменных в cfscript ColdFusion?

admin