I have been writing my own function, which accepts a number (let say an integer), everything was working fine while I was using a function without variable argument list, but now I have a problem when I'm trying to put argument(which is actually an address) into a sscanf() a get an error or a program crashes.
Code:
int GetNum(const char *format, ...)
{
int i = 0;
//only one argument for now
int num = 1;
int args = 0;
char temp[30];
char **s;
va_list arguments;
//Initializing arguments to store all values after num
va_start(arguments, num);
for(i = 0; format[i] != 0; i++)
{
if(format[i] == '%')
{
i++;
//check if is an integer
if(format[i] == 'd')
{
/*if(width > 5)
{
width = 5;
}*/ //widht
fgets(temp, 6, stdin);
if(RemoveNewLine(temp) == 1)
{
ClrBuf();
}
//PROBLEM
//desperet try
s = &(va_arg(arguments, char *));
if(sscanf(temp, "%d", s) != 1)
{
printf("Invalid input!\n");
printf("Press Enter to continue . . .");
getchar();
return NULL;
}
args++;
}
}
}
va_end(arguments);
return args;
}