我一直想知道如何逃脱这件事:
int main(int argc, char **argv) {
printf("%p %s %d\n", &argv[1], argv[1], strlen(argv[1]));
char copy[strlen(argv[1]) + 1];
strcpy(copy, argv[1]);
printf("%p %s %d\n", ©, copy, strlen(copy));
return 0;
}
字符数组copy
被分配了内存并且程序正常运行,打印出原始数组和复制数组。Valgrind也没有报错。
我曾认为在C语言中,没有使用malloc是不可能实现动态数组的。这个想法是错误的吗?