Даже как-то стрёмно спрашивать, но уж больно мало времени осталось. Написал проект по информатике (1ый курс), там основная часть данных хранится в элементах структуры, к которой напрямую обращаются функции. Тока щас осознал, что число элементов у меня задано изначально, а требуется динамическое выделение памяти. Единственный известный мне способ - что-то вроде:
char * p;
p = new char [x];
Посчитать в самом начале работы проги нужное кол-во элементов (меняется в зависимости от файла, с которым работает прога) - не проблема. ОК, кол-во известно, структура называется node, в коде что-то типа:
node * p;
x = NodeCount();
p = new node[x];
По идее вот он мой массив struct'ов и указатель на него, теперь вместо, допустим, node.content буду писать p->content и все дела. Но мне нужны обращения к конкретным элементам типа: node[n].content[m]. По идее если *p указывает на начало массива, то зная, сколько памяти выделяется под один struct, можно node[n]... заменить на (p + (n * размер))->... и указывать это будет туда же. Однако не работает. Первый компонент 1ого элемента структуры (стринг) записывается просто косячно (какие-то левые символы в начале и конце), на втором (инт) вообще предлагает отправить отчёт)) Да и код с такой подстановкой вышел совсем нечитаемый. Должен быть способ лучше, а я, нуб, его не знаю, или вообще не там ищу решение. Напомню, изначальная моя задача такая: вместо struct Node {...} Node[256]; использовать Node[x] где x определяется в самом начале работы программы. Что делать?