返回mallocatted数组的大小

问题描述 投票:1回答:1
#include <stdio.h>
#include <stdlib.h>

int main()
{
    int n;
    int *num=malloc(sizeof(int)*n);
    printf("Enter how many numbers:\n");
    scanf("%d",&n);
    printf("Enter numbers:\n");
    for(int i=0;i<n;i++)
    {
        scanf("%d",num+i);    

    }

    for(int j=0;j<n;j++)
    {
        printf("%d\n",*(num+j));    

    }

    return 0;
}

即使我没有在这里初始化n,malloc如何工作?有没有办法检查用malloc分配的数组的大小?

c arrays pointers malloc dynamic-memory-allocation
1个回答
-1
投票

分配时可以添加全长1,并在第一个元素中保留n作为长度。如果您想从数组中获取内容,只需将1添加到索引中即可。

© www.soinside.com 2019 - 2024. All rights reserved.