其他c++程序员需要一些帮助
Fellow C++ programmer needs some help
// 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;
}
现在为什么它们的括号括在变量i中?
p= new (nothrow) int [i];
为什么他们的两个for
语句和for
语句到底做什么?
为什么删除[]p而不是变量p
?
为什么它们的a括号括在变量i中?
,
为什么删除[]p而不是变量p?
p= new (nothrow) int [i];
动态分配i
元素的int
数组
delete []p;
删除动态分配的数组
c++中动态分配的基本规则是:
- 如果你使用
new
动态分配内存,使用delete
释放内存。 - 如果你使用
new []
动态分配内存,使用delete []
释放内存。
另外,请注意,您正在使用new
操作符的nothrow
版本,它基本上返回null
,如果某些错误条件并且不抛出异常,这允许c++代码与遗留的C代码兼容,后者在内存分配后使用空检查(malloc在失败时返回空)。
for
语句到底是做什么的?
for语句是一个条件循环构造,它继续执行循环,直到condition
为真。for循环的基本语法是:
for(;condition;)
{
//doSomething
}
为什么它们的2 for语句?
代码中的第一个for loop
获取来自用户的输入。它需要输入i
次。
第二个for loop
输出数组的内容。
建议你拿起一本好的c++书,通读基础知识以了解更多。
delete[]表示将数组释放回系统,if语句的无括号是可选的只是表示第一行将在true时执行,我认为你真的需要学习一些c++和编程的基础知识,找一本好书或谷歌教程有很多好的
这只是c++的语法。
-
new int [i]
表示我们想要分配内存来存储i个整数。 -
delete [] p
删除对p的内存绑定,如果省略[]
,编译器认为p指向*p
类型的单个实例。如果指令包含[]
编译器尝试删除数组元素。
相关文章:
- 需要帮助设置在C++中使用的Potrace
- 在指针的帮助下,文本文件中单词的频率
- 计算每个节点的树高,帮助我解释这个代码解决方案
- 如何在Qbutton的帮助下更改Q对话框的宽度
- 需要帮助将结构数组传递给函数
- C++需要帮助从用户那里获得一个整数,并确保它在另外两个整数之间
- 需要帮助在 c++ 中将字符串转换为字符 ----错误 "const char *" 类型的值不能用于初始化 "char" 类型的实体
- 有人可以帮助我处理正则表达式吗?
- C++调用具有 *this 属性的单个帮助程序函数
- C++:需要帮助了解运算符重载错误
- 需要以下代码的帮助,下面的代码有什么问题
- CS1 项目帮助C++
- 用于检查值是否为其任何参数的帮助程序函数
- 需要有关此 if 语句的帮助
- 类型限定宏帮助程序
- CoreCLR 中的检测探查器 - 将帮助程序程序集加载到 dotnet 进程的方法
- NS3 插槽混淆(需要帮助理解)
- 设计帮助 - 为不同类型的消息处理通用接口的设计模式
- 需要帮助查找内存泄漏
- 有人可以帮助我理解这些参数/参数吗?