萌新提问...试图在for循环中用new创建动态变量,然后在循环外再delete。本来以为变量到delete为止都是可用的,但是编译的时候出错了。有点迷惑,new建立在堆上不是不受代码块的影响吗?请大佬指点,谢谢!!
#include<iostream>
using namespace std;
int main()
{
for (int i = 0; i < 1; i++)
{
int* j = new int(1); //在循环中用new创建动态变量
}
cout << *j << endl; //编译的时候显示未定义j
delete j; //明明是这里才delete的呀?
return 0;
}
谢谢大佬回答!