Возврат размера распределенного массива - PullRequest
0 голосов
/ 02 марта 2019
#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;
}

Как работает malloc, хотя я здесь не инициализировал n? И есть ли способ проверить размер массива, выделенного с помощью malloc?

1 Ответ

0 голосов
/ 02 марта 2019

Вы можете добавить к всей длине 1 при выделении и сохранить n как длину в первом элементе.Если вы хотите получить что-то из массива, просто добавьте 1 к индексу.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...