![]() |
|
Модераторы: bsa |
![]()
|
|
| denisminb |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 36 Регистрация: 9.6.2012 Репутация: нет Всего: нет |
Добрый день,объясните пожалуйста как исправить ошибку?есть функция(примитивно набрасал суть),принимает значения,хочу чтоб возвратил Z
в основную прогу, понятно что z у меня дубл, а функция войд как быть?
компилятор выдает Description Resource Path Location Type cannot convert 'double' to 'void*' in return threads.cc /threads line 28 C/C++ Problem |
|||
|
||||
| Фантом |
|
|||
![]() Вы это прекратите! ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1516 Регистрация: 23.3.2008 Репутация: 4 Всего: 49 |
А почему, собственно, функция возвращает void*, а не double?
|
|||
|
||||
| denisminb |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 36 Регистрация: 9.6.2012 Репутация: нет Всего: нет |
нужно использовать void* в программе. понятно если сделать double func1(double Esp,unsigned long delit) - всё будет работать. Это сообщение отредактировал(а) denisminb - 12.5.2013, 15:10 |
|||
|
||||
| Фантом |
|
|||
![]() Вы это прекратите! ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1516 Регистрация: 23.3.2008 Репутация: 4 Всего: 49 |
Тогда давайте детальнее: что именно из прототипа функции Вам необходимо сохранить, можно ли использовать возвращаемый указатель для передачи нужного значения в каком-либо виде?
|
|||
|
||||
| Фантом |
|
|||
![]() Вы это прекратите! ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1516 Регистрация: 23.3.2008 Репутация: 4 Всего: 49 |
Впрочем, положительный ответ на второй вопрос, пожалуй, Вы уже дали. Тогда можно сделать как-то так:
|
|||
|
||||
| denisminb |
|
||||||
|
Новичок Профиль Группа: Участник Сообщений: 36 Регистрация: 9.6.2012 Репутация: нет Всего: нет |
если правильно Вас понял,то ...
Сохранить в прототипе нужно всё если правильно вас понял,то возвращать значение z в основную прогу нужно в дубль. |
||||||
|
|||||||
| denisminb |
|
||||
|
Новичок Профиль Группа: Участник Сообщений: 36 Регистрация: 9.6.2012 Репутация: нет Всего: нет |
Спасибо,сделал как Вы сказали,но выдает следующее на Вашем примере: Description Resource Path Location Type invalid conversion from 'void*' to 'double*' threads.cc /threads line 18 C/C++ Problem на выделении памяти,если без выделения 'Z' is used uninitialized in this function - как предупреждение, компилится,но не возвращает ничего в консоле,это на строке *Z=(x+y)*1.5; |
||||
|
|||||
| kolesnle |
|
|||
![]() Упертый сишник ![]() Профиль Группа: Участник Сообщений: 93 Регистрация: 22.3.2013 Репутация: нет Всего: нет |
Теперче будет компилироваться на C++ компиляторе Добавлено @ 18:10 C++ный компилятор более строгий, чем сишный, поэтому он допускает присвоение любого указателя void*, но не допускает void* любому указателю Это сообщение отредактировал(а) kolesnle - 12.5.2013, 18:12 |
|||
|
||||
| Фантом |
|
||||||
![]() Вы это прекратите! ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1516 Регистрация: 23.3.2008 Репутация: 4 Всего: 49 |
Я писал пример на C. Если Вы компилируете это как программу C++, то надо сделать еще одно преобразование типа указателя: поменять
на
А еще правильней в случае C++ воспользоваться new. |
||||||
|
|||||||
![]()
|
| Правила форума "C/C++: Для новичков" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Для новичков | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |