0
每次調用delete後,q [2]和p [1] [2]的值是多少?並解釋一下?通過new動態分配並在C++中刪除
#include <iostream>
using namespace std; int main() {
int **p = new int*[5]; int *q = new int[5];
for (int i = 0; i < 5; i++) {
q[i] = i;
} p[1] = q;
delete p;
delete q;
delete [] q;
}
您是否明白嘗試訪問已刪除的對象會導致未定義的行爲? – Beta
使用錯誤的'delete'也是未定義的行爲。你用'delete'匹配'new []'(至少對於'p';用'q',你做得正確,但只有在使用了錯誤的後)。 – chris
@chris:我知道那是錯的,但我不知道它是UB。 – Beta