В этом случае вы бы использовали calloc()
:
array = (int*) calloc(n, sizeof(int));
Можно с уверенностью предположить, что все системы теперь имеют все нулевые биты в качестве представления для нуля.
§6.2.6.2 гарантирует, что это сработает:
Для любого целочисленного типа, представление объекта, где все биты
ноль должен быть представлением значения ноль в этом типе.
Также возможно сделать комбинацию malloc()
+ memset()
, но по причинам, обсуждаемым в комментариях к этому ответу , вероятно, будет более эффективно использовать calloc()
.