Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 20.12.2015, 14:55   #1
Вероника99
Форумчанин
 
Регистрация: 15.12.2013
Сообщений: 414
По умолчанию Указатель типа void

Добрый день.
Код:
enum Type { Double, Int, Float };
void func(int k,enum Type t,...)
{  
     void *pv; 
    pv = (...);
...
}
Компилятор выдает ошибку error C2059: синтаксическая ошибка: ... //на эту строку pv = (...);
Почему так?
Вероника99 вне форума Ответить с цитированием
Старый 20.12.2015, 15:06   #2
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,709
По умолчанию

а что вы этим хотели добится?
p51x вне форума Ответить с цитированием
Старый 20.12.2015, 15:18   #3
taras-proger
Подтвердите свой е-майл
 
Регистрация: 12.11.2014
Сообщений: 470
По умолчанию

Цитата:
Указатель типа void
void - тип не указателя, а сырого нечта.
Цитата:
void *pv;
Тип pv - не void, а указатель на void.
Код:
Компилятор выдает ошибку error C2059: синтаксическая ошибка: ... //на эту строку pv = (...);
Почему так?
Телепаты водятся не здесь, а на www.gamedev.ru и заняты исключительно его забалтыванием.
taras-proger вне форума Ответить с цитированием
Старый 20.12.2015, 16:51   #4
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

а чо у тебя между скобок-то? мне телепатор за неуплату отключили...
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Старый 20.12.2015, 17:03   #5
Вероника99
Форумчанин
 
Регистрация: 15.12.2013
Сообщений: 414
По умолчанию

Нашла в интернете такой синтаксис (...)-оказалось что это не правильно.
Не понимаю,почему оно нормально выводит только первый параметр,на месте второго и т.д выводит мусор
Код:
#include <iostream>
#include <stdarg.h>
#include <iomanip>
using namespace std;

enum Type { Double, Int, Float };
void func(int k,enum Type t,...)
{
	int in=0,i=0;
	double d=0;
	float f=0;
va_list pv; 
va_start(pv,t);
printf ("\n");
while ( k-- )                            
{ 
	
		switch(t)
		{
		case Double:
			in=va_arg(pv,double);
		//	in=(float)in;
			cout<<in<<endl;
		
			break;
		case Int:
		in=va_arg(pv,int);

			cout<<in<<endl;
			
			break;
		case Float :
			f=va_arg(pv,float);
			cout<<f<<endl;
			break;

		}
		pv++;
}
	va_end(pv);

}
int main()
{
	//іnt kl, k2, k3, k4,  k5; 
	func(2,Int,4,5);
	//func(1,Int,6);
    return 0;
}
Вероника99 вне форума Ответить с цитированием
Старый 20.12.2015, 17:26   #6
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

Цитата:
Нашла в интернете такой синтаксис (...)-оказалось что это не правильно.
Срочно замуж!
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Старый 20.12.2015, 18:05   #7
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,709
По умолчанию

Код:
in=va_arg(pv,double);
А зачем вы в интовую переменную дабл пихаете?
p51x вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Указатель типа char RAFA91 Общие вопросы C/C++ 6 31.08.2015 06:57
C++, прерывание процедуры (функции типа void) Alendorff Помощь студентам 5 05.01.2013 07:18
функция типа void Krivorukov Общие вопросы C/C++ 9 18.11.2012 16:58
Проблема с переопределением типа void raast777 Общие вопросы C/C++ 6 22.07.2011 14:00
указатель на void в иерархии классов. можно ли так делать? ksuxa_m Помощь студентам 0 28.10.2010 21:48