fork download
  1. #include <iostream>
  2. #include <string.h>
  3.  
  4. int main() {
  5. for (size_t i = 0; i < 5; ++i) {
  6. // foo1 and foo2 assignments clear the entire array.
  7. char foo1[1024] = "";
  8. char foo2[1024] = { 0 };
  9. // this doesn't, so the previous values show thru in loop iterations.
  10. char foo3[1024];
  11. foo3[0] = '\0';
  12.  
  13. std::cout << i << ": foo1[9] = " << foo1[9] << ", foo2[9] = " << foo2[9] << ", foo3[9] = " << foo3[9] << std::endl;
  14.  
  15. strcpy(foo1, "123456789ABCDEF");
  16. strcpy(foo2, "123456789ABCDEF");
  17. strcpy(foo3, "123456789ABCDEF");
  18. }
  19.  
  20. return 0;
  21. }
Success #stdin #stdout 0s 3340KB
stdin
Standard input is empty
stdout
0: foo1[9] = , foo2[9] = , foo3[9] = �
1: foo1[9] = , foo2[9] = , foo3[9] = A
2: foo1[9] = , foo2[9] = , foo3[9] = A
3: foo1[9] = , foo2[9] = , foo3[9] = A
4: foo1[9] = , foo2[9] = , foo3[9] = A