Форум программистов, компьютерный форум, киберфорум
Наши страницы
C для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.91/11: Рейтинг темы: голосов - 11, средняя оценка - 4.91
vortexx1
6 / 6 / 3
Регистрация: 06.03.2011
Сообщений: 269
1

Несовместимый тип указателя

14.09.2012, 21:25. Просмотров 2060. Ответов 10
Метки нет (Все метки)

Здравствуйте. Допустим, есть что-то вроде такого вот:
C
1
2
3
4
5
void inputAnalys( const int* num, const char** param ) {}
 
main( int argc, char **argv ) {
    inputAnalys( &argc, argv );
}
GCC выдаёт предупреждение:
Bash
1
2
несовместимый тип указателя
expected "const char **" but argument is of type "char **"
Вроде всё компилируется и даже работает, но хочется все же разобраться, что же здесь не так.
Спасибо.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.09.2012, 21:25
Ответы с готовыми решениями:

Несовместимый тип указателя в присваивании
Только начал изучать Си и указатели. При написании простой программы получаю...

Ошибка выражение должно иметь тип указателя на объект
#include <stdio.h> #include <conio.h> int main(void) { int x,a,n;...

"Выражение должно иметь тип указателя на объект"
Добрый вечер! При написании кода возникло ряд проблем , как только не пытался...

тип или ТИП? Вот в чем вопрос...
Доброго времени суток, форумчане... Задался я вот тут одним вопросом, по сути...

ArtMoney. Тип переменной - "С точкой 4 байта". Что за тип?
Привет! В чужой программе имеется 4х байтовая переменная (значение (hex) -...

10
defer
558 / 238 / 16
Регистрация: 29.11.2010
Сообщений: 800
14.09.2012, 22:33 2
Цитата Сообщение от vortexx1 Посмотреть сообщение
хочется все же разобраться, что же здесь не так.
Вообще-то там написано, что не так
expected "const char **" but argument is of type "char **"
0
vortexx1
6 / 6 / 3
Регистрация: 06.03.2011
Сообщений: 269
15.09.2012, 11:22  [ТС] 3
defer, вы правы, спасибо большое за помощь.

Добавлено через 11 часов 58 минут
А если серьезно, как исправить этот код на нормальный?
0
castaway
Эксперт С++
4932 / 3038 / 454
Регистрация: 10.11.2010
Сообщений: 11,117
Записей в блоге: 10
Завершенные тесты: 1
15.09.2012, 11:43 4
Цитата Сообщение от vortexx1 Посмотреть сообщение
А если серьезно, как исправить этот код на нормальный?
Убрать модификатор const
C++
1
void inputAnalys( int* num, char** param )
0
vortexx1
6 / 6 / 3
Регистрация: 06.03.2011
Сообщений: 269
15.09.2012, 14:02  [ТС] 5
Выглядит как подгонка под ответ.
А если мне действительно нужен константный указатель?
0
castaway
Эксперт С++
4932 / 3038 / 454
Регистрация: 10.11.2010
Сообщений: 11,117
Записей в блоге: 10
Завершенные тесты: 1
15.09.2012, 14:12 6
Цитата Сообщение от vortexx1 Посмотреть сообщение
А если мне действительно нужен константный указатель?
в чем вопрос
C++
1
int main( const int narg, const char **arg )
Добавлено через 1 минуту
Кстати, непонятно зачем ты вообще передаешь указатель на argc. Ты же не собираешься её изменять!?
1
vortexx1
6 / 6 / 3
Регистрация: 06.03.2011
Сообщений: 269
15.09.2012, 14:28  [ТС] 7
Проверка корректности ввода.
0
castaway
Эксперт С++
4932 / 3038 / 454
Регистрация: 10.11.2010
Сообщений: 11,117
Записей в блоге: 10
Завершенные тесты: 1
15.09.2012, 14:35 8
Так указатель то зачем? Ты без проблем можешь передать его как const int num
0
vortexx1
6 / 6 / 3
Регистрация: 06.03.2011
Сообщений: 269
15.09.2012, 14:42  [ТС] 9
Чтоб передавать не по значению, а по ссылке. Эффективнее так.
0
castaway
Эксперт С++
4932 / 3038 / 454
Регистрация: 10.11.2010
Сообщений: 11,117
Записей в блоге: 10
Завершенные тесты: 1
15.09.2012, 14:56 10
Цитата Сообщение от vortexx1 Посмотреть сообщение
Чтоб передавать не по значению, а по ссылке. Эффективнее так.
И чем же это так эффективнее?))
0
alkagolik
Заблокирован
15.09.2012, 23:17 11
Цитата Сообщение от vortexx1 Посмотреть сообщение
А если серьезно, как исправить этот код на нормальный?
все в порядке. если напрягает warning, то приведи явно к типу inputAnalys( &argc, (const char**) argv ).
0
15.09.2012, 23:17
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.09.2012, 23:17

Изменение указателя в функции
Сразу напишу код, а дальше вопрос #include <stdlib.h> #include <stdio.h>...

Сравнение указателя и integer
Здравствуйте. Есть такая вот программа: int main(int argc, char *argv, char...

Передача в функцию указателя
Всем доброго времени суток. Есть указатель на char char *v_Ptr;...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru