关于C++ new的使用问题
int* p = NULL;int i = 0;
cin>>i;
p = new ; //为什么会错,求用C++语法规率来说明一下。
for(i = 0;i < 10;i++)
{
*(p+i) = i;
cout<<i<<*(p+i);
}
delete[] p; 本帖最后由 major_lyu 于 2020-2-25 12:11 编辑
int* p = NULL;
int i = 0;
cin>>i;
p = new int; //这样就对了
for(i = 0;i < 10;i++)
{
*(p+i) = i;
cout<<i<<*(p+i);
}
delete[] p;
new 后面必须要有类或者类型名啊。不然编译器怎么知道你要new一个什么东西出来啊。想要new一个int数组,就是new int, n表示数组大小。
另外,你这个代码有个问题,如果输入的i小于10, 你for循环里面指针p+i在i超过输入的值时可能指向一个未知的地址。虽然不会报错,但是会比较危险。因为你有可能会修改掉别的程序或者变量对应的内存单元的数据,导致数据错误。 major_lyu 发表于 2020-2-25 00:09
new 后面必须要有类或者类型名啊。不然编译器怎么知道你要new一个什么东西出来啊。想要new一个int数组 ...
int i = 0;
cin>>i;
p = new int; 但是这一行报错是什么原因呢? 本帖最后由 major_lyu 于 2020-2-25 00:39 编辑
〃忝書γě渎ぐ 发表于 2020-2-25 00:26
int i = 0;
cin>>i;
p = new int; 但是这一行报错是什么原因呢?
不会报错啊!这一行会分配一个存放int变量的内存,并把变量地址赋给p,但是变量的值时随机的。
如果还有错,发完整代码,和报错信息
页:
[1]