pointer to integer of different size
Пытаюсь вытянуть int значение из Потгресса.
Сначала делал так:
...
int hour;
...
hour=PQgetvalue(my_res, i, 1);
Было вот такое предупреждение:
warning: assignment makes integer from pointer without a cast
Затем я добавил приведение к инту:
...
int hour;
...
hour=(int)PQgetvalue(my_res, i, 1);
И сообщение изменилось на
warning: cast from pointer to integer of different size
Подскажите пожалуйста как сделать правильно?
Посмотрите на возвращаемый тип функции PQgetvalue. Она, наверное, возвращает указатель на int?
Вот так описание функции выглядит: char *PQgetvalue(const PGresult *res, int row_number, int column_number); При приведении к (char*) значение странное присваивает 17950381 вместо 14
Значит, функция возвращает указатель на char. Вам нужно написать что-то вроде char *temp = PQgetvalue(my_res, i, 1); int hour = *temp;
Спасибо. Предупреждение ушло. Но пока значение int получить не вышло. В БД значение 14. Считывает значение 49. 49 - это код символа 1. т.е. получается из 14 считал код первого символа.
Обсуждают сегодня