Here is the code
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int
main()
{
int n,i;
printf("Enter the size or the number of chracters that you want to enter inside the string.\n");
scanf("%d",&n);
char *p = (char*)malloc((n+1)*sizeof(char));
if(p==NULL)
{
printf("Memory allocation fails..");
exit(0);
}
puts("Enter string");
for(i=0;i<(n+1);i++)
scanf("%c",p+i);
*(p+i)= '\0';
printf("String entered %s",p);
fflush(stdin);
printf("\nEnter new size\n");
scanf(" %d",&n);
p = realloc(p,(n+1)*sizeof(char));
puts("Enter new string");
scanf("%d", &n);
for(i=0;i<(n+1);i++)
scanf("%c",p+i);
*(p+i)= '\0';
printf("New string \n%s",p);
free(p);
return 0;
}
I used an online compiler (https://www.onlinegdb.com/online_c_compiler).
The question that I want to ask. When I enter more elements than the size that I initialized for the string during runtime. It does not take the next input and prints the result. And when I enter less than the size limit, it does not go to the next part. Instead, it takes multiple inputs to move towards the next part and print the results.
When I enter string within the size limit.
When I enter string more than the size limit.
When I try to enter string less than the size limit.
Can anybody please tell me what I am doing wrong?