+ 1
What is the relation between the gets() function and a character array's size?
Code: #include <iostream> #include <stdio.h> using namespace std; char ch[5]; int main() { cout << "Size of character array before input: " << sizeof(ch) << endl; gets (ch); puts (ch); cout << "Size of character array after input: " << sizeof(ch); return 0; } And the output came to be: Size of character array before input: 5 ABC DE FGHIJKL //Input ABC DE FGHIJKL //Output Size of character array after input: 5 How can the whole input be displayed with no change in size?
6 Answers
+ 3
beacause when you put char c[5] you already allocate memory for 5 characters no matter did you put something in that positions in array
0
Isn't the size of 1 character supposed to be 1 byte? Hence, sizeof(ch) outputting 5 before any input.
So, how is 5 bytes of storage able to hold more than 5 characters?
0
So then, somehow, 5 bytes CAN store more data than merely 5 characters? That is what we conclude, right?