Печать заданного значения с использованием DMA - PullRequest
1 голос
/ 17 октября 2019

Я пишу код для получения значения заданного числа в методе Dynamic с использованием realloc. В этом случае O / P элементов нового размера не печатает правильное значение. Он печатает некоторые неизвестные значения мусора после одного или двух элементов.

Эта программа изменяет размер целочисленного значения во время выполнения.

    #include<stdio.h>
    #include<stdlib.h>

    int main()
    {
        int *ptr,n,newsize;

        printf("Enter size Elements\n");
        scanf("%d", &n);

        ptr = (int*) malloc (n * sizeof(int));

        printf("Enter the Elements\n");
        for(int i=0;i<n;i++)
        {
            scanf("%d", ptr+i);
        }
        printf("Elements are\n");
        for(int i=0;i<n;i++)
        {
            printf("%u\n", *(ptr+i));
        }

        printf("Enter the New Size of the Elements\n");
        scanf("%d", &newsize);

        ptr = realloc(ptr,newsize);

        printf("Enter the new Elements\n");
        for(int i=0;i<newsize;i++)
        {
        scanf("%d", ptr+newsize);
        }
        printf("New Elements are\n");
        for(int i=0;i<newsize;i++)
        {
            printf("%u\n", *(ptr+i));
        }

        return 0;
    }

Ожидается:

    1
    2
    3
    4

Фактические результаты:

    1
    2
    4566745
    4534665

1 Ответ

1 голос
/ 17 октября 2019

Теперь он работает после внесения исправлений ниже, как сказал Джонни Мопп.

printf("New Elements are\n");
    for(int i=0;i<newsize;i++)
    {
        printf("%d\n", *(ptr+i));
    }
...