c语言动态开辟内存数组


#include<stdio.h>
#include<stdlib.h>
int main()
{
    int *arr;
    arr=(int*)malloc(sizeof(int));
    for(int i=0;i<6;i++)
    {
        arr[i]=i;
    }
    for(int i=0;i<6;i++)
    {
        printf("%d ",arr[i]);
    }
}

为什么数组最大长度为 6?

sizeof(int) 是返回 int 的大小 4 字节。
int 数组不需要动态分配内存,直接 int arr[N],N是数组大小。如果动态分配,应该是 sizeof(int) * N