dynamic-allocation相关内容

是否 std::array<>只保证在堆栈上分配?

std::array(我自己不使用 new)是否保证被 C++ 标准分配在堆栈中而不是堆中? 要清楚,我的意思不是 new std::array.我主要想知道,是否允许标准库在其实现中使用 new. 解决方案 我在标准中找不到更明确的答案,但是 [array.overview]/2: 数组是一个聚合 ([dcl.init.aggr]),最多可以用 N 个元素进行 ..
发布时间:2022-01-22 12:14:19 C/C++开发

我可以在 C 中 free() 静态和自动变量吗?

代码如下: #include 整数编号 = 3;//静态外部变量int *ptr = #int main(void){int num2 = 4;//自动变量int *ptr2 = &num2;免费(ptr);//自由静态变量免费(ptr2);//自由自动变量返回0;} 我尝试编译上面的代码并且它可以工作,我很好奇free() 函数是否能够同时释放静态变量和自动变量?还是基本上什么都不做 ..
发布时间:2022-01-04 11:40:11 其他开发

Fortran 数组在添加值时自动增长

是否有任何现有方法可以在 Fortran 中模拟不断增长的数组?就像 C++ 中的向量.当我在 Internet 上没有找到有关此主题的任何内容时,我感到非常惊讶. 作为一个动机示例,假设我计算了一些递推关系并且我想存储我得到的所有中间数.我的停止标准是相邻结果之间的差异,所以我无法事先知道应该为此分配多少内存. 解决方案 我确信它以前曾在本网站的某个地方展示过,但我找不到. ..
发布时间:2021-12-21 13:39:17 其他开发

删除指针后将指针设为 NULL 是一种好习惯吗?

我首先要说的是,使用智能指针,您永远不必担心这一点. 以下代码有什么问题? Foo * p = new Foo;//(使用p)删除 p;p = NULL; 这是由 对另一个问题的回答和评论.Neil Butterworth 的一条评论引起了一些赞许: 在删除后将指针设置为 NULL 在 C++ 中并不是普遍的好习惯.有时这样做是件好事,有时却毫无意义并且可以隐藏错误. 在很多 ..
发布时间:2021-12-13 12:44:28 C/C++开发

C++动态创建多维数组

在 C++ 中动态创建多维数组的好方法是什么(理解惯用的/好的做法). 例如,假设我有树整数 w、h 和 d,我想创建一个数组 MyEnum my_array[w][h][d].(当然 w、h 和 d 在编译时是未知的). 最好使用嵌套的 std::vector 还是使用 new 或其他东西? 额外问题:是否也可以动态设置尺寸? 解决方案 一般来说,嵌套 std::vec ..
发布时间:2021-11-18 03:49:48 C/C++开发

std::array<>只保证在堆栈上分配?

std::array(我没有使用 new)是否保证在 C++ 标准中分配在堆栈中而不是堆中? 明确地说,我的意思不是 new std::array.我主要想知道,是否允许标准库在其实现中使用 new. 解决方案 我在标准中找不到更明确的答案,但是 [array.overview]/2: 一个数组是一个聚合([dcl.init.aggr]),它可以用最多N个元素进行列表初始化类型 ..
发布时间:2021-11-18 03:24:58 C/C++开发

正确分配多维数组

这个问题的目的是提供一个关于如何在 C 中正确动态分配多维数组的参考.这是一个即使在一些 C 编程书籍中也经常被误解和解释不清的主题.因此,即使是经验丰富的 C 程序员也很难做到正确. 我的编程老师/书籍/教程告诉我,动态分配多维数组的正确方法是使用指针到指针. 但是,SO 上的几个高代表用户现在告诉我这是错误的和不好的做法.他们说指向指针的指针不是数组,我实际上并没有分配数组,而且我 ..

使用指向one-past-malloc的指针是否定义明确?

在C语言中,最好使指针指向数组的最后一个元素之后,并在指针算术中使用它,只要不取消引用它即可: int a [5],* p = a + 5,diff = p-a;//定义明确 但是,这些是UB: p = a + 6;int b = *(a + 5),diff = p-a;//解引用和指针运算 现在我有一个问题:这是否适用于动态分配的内存?假设我只使用了指针算术中的倒数第二个指针,而 ..
发布时间:2021-05-03 19:04:43 其他开发

std :: aligned_alloc()的重新分配等效项是什么?

我注意到 std :: aligned_alloc() 进入C ++ 17,我喜欢它.但是-当我需要重新分配时会发生什么?我可以手动执行此操作(假设当前分配的地址处的可用空间仅是我要求的空间量),但是标准库中是否应该没有此功能? 解决方案 没有等效的标准呼叫. 更是如此,微软最新的C ++实现仍然具有自己的 _aligned_malloc(),而不是现在标准化的 std :: ali ..

分配初始化的对齐内存

我正在编写一个程序(在C ++中),在其中我需要分配其起始地址应与缓存行大小对齐的数组.当我分配这些数组时,我还希望将内存初始化为零. 现在,我可以使用posix_memalign函数来工作了.这对于获取与内存对齐的数组非常有效,但该数组未初始化.在初始化数组时,是否可以使用更好的功能将数组清零?还是只需要编写一个单独的循环来为我做这些准备? 解决方案 只需在块上调用 memset ..
发布时间:2021-04-19 19:37:22 C/C++开发

如何计算输入为cstring数组的单词和行

此程序应从用户提供的文本文件中读取一个段落,然后将每行存储在一个破烂的char数组中,并计算该段落的单词和行的总数,然后显示结果。 我不知道为什么行数总是给我3 的结果,为什么单词数总是缺少2个单词。 请帮助并记住,我不是专业人士,最近才刚开始学习c ++。 #include #include #include ..
发布时间:2020-10-27 02:23:46 C/C++开发

Spark流的动态分配

我有一个Spark Streaming作业与其他作业(Spark核心作业)一起在我们的集群上运行。我想对包括Spark Streaming在内的这些作业使用动态资源分配。根据下面的JIRA问题,动态分配不支持Spark Streaming(在1.6.1版本中)。但是已在2.0.0中修复 JIRA链接 PDF在本期中,它说应该有一个名为 spark.streaming.dynamicA ..