I\'ve always wondered how I could get away with this:
int main(int argc, char **argv) { printf(\"%p %s %d\\n\", &argv[1], argv[1], strlen(argv[1]));
Variable-length arrays originated as a GCC extension, but they were also adopted by C99.
They are still being allocated on the stack, so making them "huge" is considered bad style (and will likely break on you someday).