Я пишу код для получения значения заданного числа в методе 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