一个很好的C可变长度数组示例[关闭]
已关闭。这个问题需要更加集中。它当前不接受答案。 想改善这个问题吗?更新问题,使其仅通过编辑此帖子来关注一个问题。 4年前关闭。 这个问题在SO上引起了不小的反响,所以我决定在那里删除它,然后在这里尝试。如果您认为它也不适合此处,请至少对如何找到我所追求的示例提出建议... 您能举个例子吗,使用C99 VLA相对于当前的标准堆(使用C ++ RAII机制)提供了真正的优势? 我遵循的示例应: 与使用堆相比,可轻松实现(可能达到10%)的性能优势。 没有一个好的解决方法,它根本不需要整个数组。 实际受益于使用动态尺寸,而不是固定的最大尺寸。 在正常使用情况下,不太可能导致堆栈溢出。 足够强大,足以吸引需要性能的开发人员在C ++项目中包含C99源文件。 在上下文中添加了一些说明:我的意思是C99所指的VLA,但不包括在标准C ++中:int array[n]这里n是变量。在一个用例示例中,我胜过其他标准(C90,C ++ 11)提供的替代方案: int array[MAXSIZE]; // C stack array with compile time constant size int *array = calloc(n, sizeof int); // C heap array with manual free int *array = new int[n]; // …