小编Cac*_*che的帖子

c中的动态与静态数组

以下代码使用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)

c arrays static memory-management dynamic

3
推荐指数
1
解决办法
2万
查看次数

标签 统计

arrays ×1

c ×1

dynamic ×1

memory-management ×1

static ×1