以下代码使用malloc函数创建一个数组.但我知道只需使用int array [size]就可以做得更简单.我认为这是静态数组.但是malloc函数是动态数组吗?我在网上发现了这个代码......真正发生了什么,以及静态数组和动态数组(以及堆内存之间的静态内存)之间的区别.您可以在运行时更改动态数组的大小吗?或者......我完全不知道......如果有人能解释我会很感激:)
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(void)
{
int size;
int i;
printf("Choose size of array: ");
scanf("%d",&size);
/*---MALLOC/FREE---*/
int *m_array = (int *)malloc((size+1)*sizeof(int));
memset(m_array,'\0',size+1);
for(i=0; i<size ; i++)
{
m_array[i]=i;
printf("%d ",m_array[i]);
}
printf("\n");
free(m_array);
return 0;
}
Run Code Online (Sandbox Code Playgroud)