Этот код выглядит очень, очень странно.
Мое предположение (на основании вашего комментария, что «в цикле создается указатель, а в конце цикла я его удаляю».) Я подозреваю, что delete
является излишним.
Когда вы звоните delete tmp
, это освобождает blks[i-1]
, так как и tmp
, и blks[i-1]
указывают на одну и ту же память. Если вы ожидаете, что в конце цикла blks
по-прежнему будет содержать действительные указатели, то delete
, безусловно, является излишним.