я пытаюсь создать двумерный массив pointers.What неправильно с объявлением нижеСоздание двумерного массива указателей
Node* root[100][100] = new Node*[100][100];
я пытаюсь создать двумерный массив pointers.What неправильно с объявлением нижеСоздание двумерного массива указателей
Node* root[100][100] = new Node*[100][100];
Осознайте, что первый элемент является указателем на указатель, так что вы должны иметь корень как указатель указатель на указатель. И тогда по существу вы создаете 100 указателей для каждого указателя.
Node*** root=new Node**[100];
for(int i=0;i<100;i++)
root[i]=new Node*[100];
Теперь корень [40] [60] будет иметь тип Node *.
См. Рабочий пример here.
Интересно, нужен ли вам «указатель [на] двумерный массив».
Node (*root)[100][100] = new Node[1][100][100];
или «указатель [работает] в 2 одномерный массив»
Node (*root)[100] = new Node[100][100];
Во-первых, скажите нам, где вы получили этот код из или почему вы ожидали работать? (если у вас нет источника, ваш вопрос недействителен - вы не можете просто сбрасывать случайный код в компиляторе и надеяться на лучшее) –
«Что не так с объявлением ниже» - Ну: «Ошибка: инициализатор массива должен быть список инициализаторов "- Вы доверяете" clang ", или я должен объяснить, почему это неправильно? –
@LuchianGrigore: уверенный вы можете! Вы просто в конце концов спросите, почему это не работает :) – ChiefTwoPencils