У меня есть функция со следующим прототипом:Указатель функции с переменным числом аргументов
void func(int an, ...);
И я хотел бы сохранить адрес этой функции и вызвать его позже. Я действительно понятия не имею, как это сделать, я desesperatly попробовал:
void (*funcPtr)(int, ...); // Declaration
funcPtr = func; // Storage
(*funcPtr)(3,2,5); // Call
Этот код компилируется нормально, но при исполнении он делает дерьмо, когда я вхожу мою функцию аргументы в моей va_list
не те I послал.
Заранее спасибо
EDIT: Хорошо, я просто забыл первый аргумент. В моем коде выше линия вызова должна быть заменена на:
(*funcPtr)(3,3,2,5); // Call
Выглядит отлично здесь: http://ideone.com/uqLLR5. –
Очень странно, ваш код не работает для меня, как и мой старый: компилируется отлично, но аргументы не ожидаются. Я использую Visual Studio 2013 – Lovy
Из любопытства, какие значения отображает код Оли? – AntonH