Проблема с передачей постоянного указателя в качестве аргумента другой функции - PullRequest
0 голосов
/ 04 октября 2018

Итак, у меня проблема с кодом, который я пишу.Упрощенная версия этого кода выглядит примерно так:

typedef unsigned int Variable_one;

int original_function(Variable_one *const v1){
   if (validation(v1)) {
      /*body*/
   }
   /* more body */
}

int validation(Variable_one v1) {
   if (v1 == NULL) {
      /* even more body */
   }
}

Я знаю, что Variable_one - это целое число без знака, но я должен выполнить проверку, если v1 передается в функцию проверки, является нулевым значением.,Всякий раз, когда я пытаюсь это сделать, даже если я делаю

if (validation(*v1))

, я все равно получаю ту же ошибку (из-за настроек компилятора), которая заключается в «сравнении указателя и целого числа».Что касается изменения сигнатур функций или Variable_one, я не могу из-за ограничений проекта.

1 Ответ

0 голосов
/ 04 октября 2018

Вам нужно передать правильный тип данных в правильный параметр, а затем запросить значение по этому указателю с помощью *

Вот, пожалуйста,

int validation(Variable_one *const v1) 
{ 
if (*v1 == NULL) { /* even more body */ }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...