Я написал трехмерную реализацию на языке CGame of LifeДжона Конвея. Теперь я хочу сделать код безопасным для ошибок. В этойстатье с сайта yolinux.com говорится
Проверка на наличие ошибок выделения памяти. Невозможно освободить его, если он не был выделен.
У меня вопрос: нужно ли мне действительно каждый раз проверять наличие ошибок распределения? Это может значительно замедлить мой код. Вот выдержка:
inline int golField_Init(golField* field, golAllocProc alloc,
golOptions options, uint dimx, uint dimy, uint dimz) {
field->dimx = dimx;
field->dimy = dimy;
field->dimz = dimz;
field->cells = alloc(sizeof(golCell**) * dimx);
field->options = options;
if (!field->cells) return 1;
int x, y, z;
for (x = 0; x < dimx; ++x) {
field->cells[x] = alloc(sizeof(golCell*) * dimy);
for (y = 0; y < dimy; ++y) {
field->cells[x][y] = alloc(sizeof(golCell) * dimz);
for (z = 0; z < dimz; ++z) {
golCell_Init( &field->cells[x][y][z], 0 );
}
}
}
return 0;
}
Должен ли я действительно проверять наличие ошибок распределения при каждом выделении?Это также потребует от меня освобождения уже выделенного хранилища.