Что произойдет с размером строки в этом коде?
В этом коде есть две строки: одна является массивом, а другая динамически создается с помощью указателя.
1.Если мой ввод меньше 50 для string1 и меньше 10 для string2 ,будет ли пространство, которое не заполнено, потрачено впустую, если да, то как уменьшить размер.
2.In случай строки 2 параметр размера malloc равен 10, а параметры размера fgets - 10 что произойдет, если я увеличу размер до fgets(string2, 50, stdin), который больше размера malloc?
3. Как рассчитать конечный размер входной строки в каждом конкретном случае?Я использовал оператор sizeof, но он дал жестко закодированный размер, равный 50 и 10 соответственно для string1 и string2
4.Is есть ли другой лучший подход к созданию динамической строки?
Что я уже пробовал:
#include <stdio.h> #include <stdlib.h> int main() { int size=10; char string1[50]; char *string2; string2=(char *)malloc(size*sizeof(char)); fgets(string1,10,stdin); printf("%s",string1); fgets(string2,10,stdin); printf("%s",string2); }