C 函数 : is this dynamic allocation? 用变化的长度初始化数组

标签 c initialization memory-management dynamic-memory-allocation

假设我有一个 C 函数:

void myFunction(..., int nObs){
    int myVec[nObs] ;
    ...
}

myVec 是动态分配的吗?每当调用 myFunction 时,nObs 都不是恒定的。我问这个问题是因为我目前正在用这种习惯进行编程,而一位 friend 的程序出现错误,罪魁祸首是他没有动态分配他的数组。我想知道我的编程习惯(如上例中的初始化)是否是一个安全的习惯。

谢谢。

最佳答案

为了回答您的问题,它不被视为动态分配,因为它位于堆栈中。在允许这样做之前,您可以在某些平台上使用函数 alloca 在堆栈上模拟相同的可变长度分配,但是不可移植。这是(如果您为 C99 编程)。

关于C 函数 : is this dynamic allocation? 用变化的长度初始化数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2316401/

相关文章:

c - 我写了这个用于冒泡排序的 C 程序。它确实很好,但它真的是冒泡排序逻辑吗?

c - 针对 rabbitmq-c 构建

c - 二进制 * 的无效操作数(有 ‘ab {aka struct a}’ 和 ‘ab * {aka struct a *}’ )

尽管尝试了一切,但仍无法在 C 中初始化我的数组计数器

C++ : how can I fourier transform an array into an other array of different size using fftw3

javascript - 如何在javascript中的foreach语句中初始化id?

c++ - 类初始化中的指针初始化

PHP fatal error : Out of memory - Memory Allocation Strategies for Big Data

Python多处理内存使用

Java - 在函数内部创建具有常量值的字符串