У меня полностью функциональная программа *, но у меня есть вопрос о выделении памяти, потому что что-то для меня все еще неясно.(* полностью функциональный означает, что у меня есть результаты, которые я хочу получить, что также может быть удачей).
typedef struct Field {
long index;
long x;
long y;
struct Cell *N;
struct Cell *S;
struct Cell *E;
struct Cell *W;
int count;
bool used;
} Field;
typedef struct Construct {
Field *fs1;
Field *fs2;
} Construct;
Field *fields;
long countFields = 1;
Construct *constructs;
long countStructs = 1;
Есть две структуры, одна называется Клетка, другая - Камень, Клетка имеет координаты,индекс, число, бул и указатели на четыре другие ячейки.Камень просто имеет два указателя на ячейки.Оба имеют определение типа для одного и того же имени, просто добавляя Td.
Так что мой вопрос касается выделения памяти для него.Я использую следующие четыре выражения для первого malloc, а затем добавляю больше элементов.
Вот как я это узнал. Полагаю, a также может заменить "CellTd" на "struct Cell" и т. Д.,x - это просто фактор, который говорит о моей проблеме.
Моя текущая проблема в том, что я не уверен, что это точно, потому что у меня разные результаты при увеличении x.Поэтому, когда я работаю с ним, иногда нет серьезного указателя на некоторые элементы, когда коэффициент x равен 1. Я использую x = 50, тогда все работает, но это не должно быть, как это работает.(Просто чтобы сказать, что, конечно, и countStones, и countCells создаются в количестве элементов в массиве ...)
Я делаю что-то не так с перераспределением?