0 c++
// rememb-o-matic
#include <iostream>
#include <new>
using namespace std;
int main ()
{
int i,n;
int * p;
cout << "How many numbers would you like to type? ";
cin >> i;
p= new (nothrow) int [i];
if (p == 0)
cout << "Error: memory could not be allocated";
else
{
for (n=0; n<i; n++)
{
cout << "Enter number: ";
cin >> p[n];
}
cout << "You have entered: ";
for (n=0; n<i; n++)
cout << p[n] << ", ";
delete[] p;
}
return 0;
}
Run Code Online (Sandbox Code Playgroud)
现在,
为什么他们的括号包含在变量i中?
p= new (nothrow) int [i];
Run Code Online (Sandbox Code Playgroud)
为什么他们的2个for陈述和for陈述完全是什么?
为什么删除[] p而不是变量p?
为什么他们的括号包含在变量i中? &
为什么删除[] p而不是变量p?
p= new (nothrow) int [i];
Run Code Online (Sandbox Code Playgroud)
动态分配元素int数组i.
delete []p;
Run Code Online (Sandbox Code Playgroud)
删除动态分配的数组.
C++中动态分配的基本规则是:
new动态分配内存,请使用delete取消分配内存.new []动态分配内存,请使用delete []取消分配内存.另外请注意,您所使用nothrow的版本new运营商,它基本上返回null如果一些错误情况并没有抛出异常,这使得C++代码是与其后的内存分配使用空检查遗留的C代码兼容(malloc的回报失败时为null).
请问一个for声明做什么呢?
for语句是一个条件循环结构,它继续执行循环,直到condition保持为真.for循环的基本语法是:
for(;condition;)
{
//doSomething
}
Run Code Online (Sandbox Code Playgroud)
为什么他们的2个陈述?代码中
的第一个for loop获取用户的输入.它需要输入i次数.
第二个for loop打印出数组的内容.
建议你学习一本好的C++书籍并阅读基础知识以了解更多信息.