Вы можете попробовать использовать memset
- как вы знаете, массивы в C внутренне определены как непрерывный блок памяти.memset
, с другой стороны, это функция, которая заполняет определенный блок памяти определенным значением.
Теперь, поскольку ваш двумерный массив не является смежным (потому что у вас есть массив указателей),Вы не сможете вызвать 'memset' только один раз, но, по крайней мере, вы можете вызывать его для каждой строки, то есть вы будете называть его NO_OF_ROWS раз.
Это должно быть похоже на это (обратите внимание, что некоторыеможет потребоваться литье, а мой с ++ немного ржавый):
for (row = 0; row < NO_OF_ROWS; row++)
{
seats[row] = new status[NO_OF_SEATS];
memset(seats[row],EMPTY,NO_OF_SEATS*sizeof(status));
}