Почему следующее выражение в языке C не работает?
map = malloc(sizeof(Map) * tiles);
map = {
0,2,0,0,0,0,0,0,2,0,
0,1,0,0,0,0,0,0,1,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
2,1,0,0,0,0,0,0,1,2,
0,0,0,0,0,0,0,0,0,0
};
Я просто хочу заполнить данные в таком формате «строка / столбец» в массиве C. Однако компилятор не работает с
error: expected expression before ‘{’ token
(в строке map = {). Заполнение массива другими способами работает нормально, и я уверен, что скобки подходят для инициализаций ... Я не могу этого сделать после того, как выделил память?
РЕДАКТИРОВАТЬ: Я решил это, создав временный массив символов и затем загрузив данные в преобразованную карту в цикле for. По-прежнему. Я хотел бы знать, почему в приведенном выше коде происходит утечка памяти, как указано ниже. И не будет ли мое исправление (анализ временного массива и установка с ним данных карты) утечки памяти?