Мне всегда было интересно, как мне с этим справиться:
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;
}
Массив char copy
все равно выделяется, и программа работает нормально, распечатывая оригинал и копию.И Вальгринд ни на что не жалуется.
Я думал, что динамические массивы в C невозможны без malloc.Был ли я не прав?