如何在C中定义动态数组

如何在C中定义动态数组,c,arrays,C,Arrays,我真的不知道如何在c中创建动态数组。 这是一个简单的例子。如果我定义一个静态数组,那么基本上就会设置缓冲区溢出。那么,如何创建一个动态数组,以便在for循环中使用呢?malloc是个好主意吗?如果是,我如何在for循环中使用malloc int my_array[] = {}; int i = 10; for (i; i <= sizeof(my_array) / sizeof(my_array[0]); i++) { my_array[i] = i + 2; } int my_数

我真的不知道如何在c中创建动态数组。 这是一个简单的例子。如果我定义一个静态数组,那么基本上就会设置缓冲区溢出。那么,如何创建一个动态数组,以便在for循环中使用呢?malloc是个好主意吗?如果是,我如何在for循环中使用malloc

int my_array[] = {};
int i = 10;
for (i; i <= sizeof(my_array) / sizeof(my_array[0]); i++) {
   my_array[i] = i + 2;
}
int my_数组[]={};
int i=10;

对于(i;i不仅是
malloc
一个好主意,而且是在C中动态分配内存的首选方法。定义了函数,其中还可以找到一个示例。请注意,
free
应该用于在不再需要内存时释放内存。

不仅是
malloc
一个好主意,还是首选方法y在C中动态分配内存。该函数已定义,其中还可以找到一个示例。请注意,
free
应用于在不再需要内存时释放内存。

这是未定义的行为,请使用
malloc
或“可变长度数组”(如果您的编译器支持)@unholymea VLA不是“动态”…网络上有很好的资源可用于此。这是未定义的行为,请使用
malloc
或“可变长度数组”(如果编译器支持)@UnholySheep VLA不是“动态的”“…网络上有很好的资源用于此。此外,在
释放
内存后,您不得访问内存。此外,在
释放
内存后,您也不得访问内存。