Может ли кто-нибудь помочь мне лучше понять, как работает распределение памяти? Я был бы признателен, если кто-то может пройти шаг за шагом (надеюсь, с картинками), что происходит в этом коде:Что делает этот код? Распределение памяти
char a[3][4] = {"xy", "abcd", "!?"};
char (*b)[4], *c;
b = a + 1;
c = *a + 1;
я посмотрел вокруг, но не нашел ничего объяснить это тщательно, спасибо!
Edit: Я был бы признателен, если кто-то может объяснить это с помощью memoryblocks, ех, [х] [у] [] [а] [б] [с] [d] []
Считается, что он ничего не делает, поскольку он не имеет побочных эффектов ... – unwind
Должен быть увеличенный размер строки «abcd», * пять символов длиной, включая терминатор, набитый в нижний * четыре * -char массив должен учитываться в любых ответах? – WhozCraig
@WhozCraig Нет, это не проблема. 'char foo [3] =" foo ";' является корректным и не добавляется терминатор, если литерал - это точно длина массива. – unwind