Как инициализировать динамический массив так, чтобы не было разыменования пустого указателя?
К примеру, вот код. Выскакивает предупреждение, мозолит глаза, а возможно я не ведаю об страшных опасностях, которые этот код может за собой повлечь.
int size = 5;
int* tmp = (int*)malloc(sizeof(int) * size);
for (int i = 0; i < size; i++)
{
tmp[i] = i; // Здесь выскакивает предупреждение
}
Ответы (1 шт):
Автор решения: Harry
→ Ссылка
Например,
int size = 5;
int* tmp = (int*)malloc(sizeof(int) * size);
assert(tmp);
for (int i = 0; i < size; i++)
или
int size = 5;
int* tmp = (int*)malloc(sizeof(int) * size);
if (tmp) {
for (int i = 0; i < size; i++)
Словом, обеспечьте проверку того, что malloc и в самом деле выделил вам запрошенные 20 байт памяти.