char * a = new char[];
a[0]='1';
delete []a;
Я не указал размер массива, но когда я его запустил, он дал ошибку отладки. Но когда я пишу этот код следующим образом:Удалить массив типа char
char * a = new char[1];
a[0]='1';
delete []a;
тогда все будет в порядке.
Может ли любое тело сказать мне, почему оно будет работать правильно, когда я укажу номер?
При распределении памяти вам нужно указать, сколько выделяется. Я был бы удивлен, если бы первый не дал ошибку или хотя бы предупреждение при компиляции. –
@Joachim: MSVC принимает синтаксис без какой-либо диагностики! Я очень удивлен. –