我一直想知道如何逃脱这个:
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;
}
Run Code Online (Sandbox Code Playgroud)
copy无论如何,char数组都被分配,程序运行正常,打印出原始数据和副本.而Valgrind并没有抱怨什么.
我认为没有malloc的C语言中不可能使用动态数组.我错了吗?