Вы должны освободить именно то, что вы выделяете (или то, что вы получаете от функций, которые конкретно говорят, что у вас есть указатель сейчас, или что он «подходит для передачи на free
»).То есть, если вы разместили массив, вы освобождаете указатель на этот массив.
Теперь, если массив содержит указатели на другие вещи, которые вы выделили или приобрели, вы должны освободить и эти указатели.(то есть значение каждого элемента в массиве), если только у вас нет копий, хранящихся в другом месте, которое вы все еще используете.Но вам не нужно (и не следует) освобождать указатели на каждую ячейку в массиве.