In the attempt of four arrays in C, I came up with this problem.
void main () {four buffers [5] = {'s', 'd', 'f', 'd', 'f'}; Four [5] = "SDFDF"; Printf ("% d \ n", * A == * buffer); Printf ("% s \ n", buffer); Printf ("% d \ n", (int) string (buffer)); Printf ("% d \ n", (int) string (a)); } is output
1 sdfdf sdfdf 5 6
The main problem is that '\ 0' , correctly defines 5 character string and To get started with the initial list, it should be
four buffer [6] = {'s', 'd', 'f', such as char From an array, 'D', 'F', '\ 0'}; The second version in your code is incorrect because the array can only store 5 characters, again
char a [6] = "SDFDF"; Instead of 5 * /
/ * ^ 6 you can not expect any work after that part of the code to work, when you have lost '\ 0 '.
printf () with "% s" spcifier and strlen () expect previous special value '\ 0' or 0 if you want, to stay there, when it is not, then these functions apply undefined behavior because they go beyond the end of the array There are '\ 0' . Searching for
त्रुटि स्टैक स्तर बहुत गहरा है