Curioustab
Aptitude
General Knowledge
Verbal Reasoning
Computer Science
Interview
Aptitude
General Knowledge
Verbal Reasoning
Computer Science
Interview
Home
»
C Programming
»
Variable Number of Arguments
Point out the error in the following program. #include
#include
int main() { void display(int num, ...); display(4, 12.5, 13.5, 14.5, 44.3); return 0; } void display(int num, ...) { float c; int j; va_list ptr; va_start(ptr, num); for(j=1; j<=num; j++) { c = va_arg(ptr, float); printf("%f", c); } }
Error: invalid va_list declaration
Error: var c data type mismatch
No error
No error and Nothing will print
Correct Answer:
Error: var c data type mismatch
Explanation:
Use
double
instead of
float
in
float c;
← Previous Question
Next Question→
More Questions from
Variable Number of Arguments
Point out the error in the following program. #include
#include
int main() { void display(char *s, int num1, int num2, ...); display("Hello", 4, 2, 12.5, 13.5, 14.5, 44.0); return 0; } void display(char *s, int num1, int num2, ...) { double c; char s; va_list ptr; va_start(ptr, s); c = va_arg(ptr, double); printf("%f", c); }
Point out the error if any in the following program (Turbo C). #include
#include
void display(int num, ...); int main() { display(4, 'A', 'a', 'b', 'c'); return 0; } void display(int num, ...) { char c; int j; va_list ptr; va_start(ptr, num); for(j=1; j<=num; j++) { c = va_arg(ptr, char); printf("%c", c); } }
Point out the error in the following program. #include
#include
void varfun(int n, ...); int main() { varfun(3, 7, -11, 0); return 0; } void varfun(int n, ...) { va_list ptr; int num; num = va_arg(ptr, int); printf("%d", num); }
Point out the error in the following program. #include
#include
void display(char *s, ...); void show(char *t, ...); int main() { display("Hello", 4, 12, 13, 14, 44); return 0; } void display(char *s, ...) { show(s, ...); } void show(char *t, ...) { int a; va_list ptr; va_start(ptr, s); a = va_arg(ptr, int); printf("%f", a); }
Point out the error in the following program. #include
#include
void varfun(int n, ...); int main() { varfun(3, 7, -11.2, 0.66); return 0; } void varfun(int n, ...) { float *ptr; int num; va_start(ptr, n); num = va_arg(ptr, int); printf("%d", num); }
The macro va_start is used to initialise a pointer to the beginning of the list of fixed arguments.
A function that receives variable number of arguments should use va_arg() to extract the last argument from the variable argument list.
va_list is an array that holds information needed by va_arg and va_end
The macro va_arg is used to extract an argument from the variable argument list and advance the pointer to the next argument.
A function that receives variable number of arguments should use va_arg() to extract arguments from the variable argument list.
Discussion & Comments
No comments yet. Be the first to comment!
Name:
Comment:
Post Comment
Join Discussion
Discussion & Comments