#include <iostream>
#include <string.h>
int main() {
for (size_t i = 0; i < 5; ++i) {
// foo1 and foo2 assignments clear the entire array.
char foo1[1024] = "";
char foo2[1024] = { 0 };
// this doesn't, so the previous values show thru in loop iterations.
char foo3[1024];
foo3[0] = '\0';
std::cout << i << ": foo1[9] = " << foo1[9] << ", foo2[9] = " << foo2[9] << ", foo3[9] = " << foo3[9] << std::endl;
strcpy(foo1, "123456789ABCDEF");
strcpy(foo2, "123456789ABCDEF");
strcpy(foo3, "123456789ABCDEF");
}
return 0;
}
ICAgICNpbmNsdWRlIDxpb3N0cmVhbT4KICAgICNpbmNsdWRlIDxzdHJpbmcuaD4KCQoJaW50IG1haW4oKSB7CgkJZm9yIChzaXplX3QgaSA9IDA7IGkgPCA1OyArK2kpIHsKICAgICAgICAgICAgLy8gZm9vMSBhbmQgZm9vMiBhc3NpZ25tZW50cyBjbGVhciB0aGUgZW50aXJlIGFycmF5LgoJCQljaGFyIGZvbzFbMTAyNF0gPSAiIjsKCQkJY2hhciBmb28yWzEwMjRdID0geyAwIH07CiAgICAgICAgICAgIC8vIHRoaXMgZG9lc24ndCwgc28gdGhlIHByZXZpb3VzIHZhbHVlcyBzaG93IHRocnUgaW4gbG9vcCBpdGVyYXRpb25zLgoJCQljaGFyIGZvbzNbMTAyNF07CgkJCWZvbzNbMF0gPSAnXDAnOwoKCQkJc3RkOjpjb3V0IDw8IGkgPDwgIjogZm9vMVs5XSA9ICIgPDwgZm9vMVs5XSA8PCAiLCBmb28yWzldID0gIiA8PCBmb28yWzldIDw8ICIsIGZvbzNbOV0gPSAiIDw8IGZvbzNbOV0gPDwgc3RkOjplbmRsOwoKCQkJc3RyY3B5KGZvbzEsICIxMjM0NTY3ODlBQkNERUYiKTsKCQkJc3RyY3B5KGZvbzIsICIxMjM0NTY3ODlBQkNERUYiKTsKCQkJc3RyY3B5KGZvbzMsICIxMjM0NTY3ODlBQkNERUYiKTsKCQl9CgoJCXJldHVybiAwOwoJfQ==