Я пытаюсь создать функцию, которая может принимать любое количество аргументов типов char, char * и int после первых двух аргументов. Но мне не удается заставить его принимать значения, отличные от char *. Вот что у меня есть:Как передать N аргументов разных типов в C
int formatter (char *str, const char *format, ...) {
va_list valist;
va_start(valist, format);
int i;
for (i = 0; i < strlen(format); i++) {
switch (format[i]) {
case '1':
strcat(str, va_arg(valist, char*));
}
}
va_end(valist);
return 1;
}
Вызов, который вызывает программу аварии:
int leet = 1337;
char temp[10] = "Hello!";
char result[100] = "";
formatter(result, "1 My name is 1", temp, leet);
Что такое «проблема»? Вы получаете сообщение об ошибке? – DyZ
.exe просто перестает работать – Ulsting
Под «остановками» вы имеете в виду «успешно завершает» или «сбой»? Какова ценность 'format'? – DyZ