如何清除动态数组在c++和多少是在堆栈上
How to clear dynamic array in C++ and how much is on the stack?
我的c++程序中有一个结构体。在函数结束时,我执行delete[]来释放分配的内存。我如何擦除代码中的所有元素而不做for()循环?
struct sServerStatus
{
TCHAR sServer[MAX_COMPUTERNAME_LENGTH+1]; // The NetBIOS name of the computer + 1 null terminating character.
};
sServerStatus *sServersType1 = new sServerStatus[1024];
Q1。如何在我填满一些项后清除数组?我是否使用securezerommemory ?
SecureZeroMemory(sServersType1 , sizeof(sServersType1 ));
Q2。堆栈上有什么?我假设堆栈上分配的空间只是MAX_COMPUTERNAME_LENGTH+1, 1024个元素在堆上?
-
new sServerStatus[1024];
将在堆上分配1024个sServerStatus
实例。 -
每一个都有
MAX_COMPUTERNAME_LENGTH+1
TCHAR
s(也在堆上,因为这是对象分配的地方)
堆栈上唯一的东西是指针 sServersType1
。
为了清理一切,请注意您没有使用new
来分配(2),因此您也不需要使用delete
。一旦sServerStatus
实例被销毁,这些内存将被释放。
但是您需要释放使用new
分配的内存。要做到这一点,您需要编写delete[] sServersType1
。注意[]
.
相关文章:
- 复制列表初始化的隐式转换的等级是多少
- while循环中while循环的时间复杂度是多少
- 如何检查一个c++字符串中有多少相同的字符/数字
- C++有多少类型的循环
- 求出有多少个数字是完美平方,而sqrt()是L,R范围内的素数
- 在条件变量中触发错误信号的频率是多少
- 函数的时间复杂度是多少?
- 必须为 C++20 协程帧保留多少内存?
- 对于四轴飞行器,PID中I控制器的理想值应该是多少
- C++,数组有多少个地址?
- 在C++中使用并行化的预期速度是多少(不是 OpenMp,而是 <thread>)
- 在 Linux 中存储区域设置名称的缓冲区大小应该是多少?
- 在内存不足之前,我可以声明多少个 const 变量?
- 可以读入进程内存的最大块大小是多少?
- 如何在不知道C++中有多少可选参数的情况下在循环中使用va_arg?
- 在二维向量或数组中可以存储的最大元素数是多少?
- 如何创建一个所有行大小不同的 2D 数组,并且用户将指定每行将有多少个元素?
- 计算出有多少客户端可以连接到我正在使用的一些tcp服务器代码
- 如果我不知道每个列表中有多少个数字,我如何将给定数量的数字列表作为输入?
- C++中 std::map 的运行时复杂度是多少?