根據我對C++的基本知識,我假設下面的代碼會有運行時錯誤。由於編譯器沒有爲y
指針分配任何空間,因此應在將值指定給y
指針之前添加y = new int;
。爲指針賦值無新
我錯了嗎或者編譯器有隱式分配空間給y
指針嗎? (I編譯我與開發 - C++代碼4.9.9.2。)
#include <cstdlib>
#include <iostream>
using namespace std;
int main(int argc, char *argv[])
{
int* x;
int* y;
x = new int;
*x = 42;
cout << *x << "\n";
*y = 13;
cout << *y << "\n";
}
這是未定義的行爲。代碼仍然是越野車。 – juanchopanza
它當然沒有。 –
它可能是未定義的行爲,只是沒有顯示錯誤。 – Codor