В C, каков наилучший способ запроса и сохранения строки без лишнего пространства, если мы не можем запросить длину строки. Например, обычно я бы сделал что-то вроде следующего...
char fname[30];
char lname[30];
printf("Type first name:\n");
scanf("%s", fname);
printf("Type last name:\n");
scanf("%s", lname);
printf("Your name is: %s %s\n", fname, lname);
Однако меня раздражает тот факт, что мне приходится использовать больше места, чем нужно, поэтому я не хочу использовать char fname[30]
, а вместо этого динамически выделяю размер строки. Какие-нибудь мысли?
malloc
для выделения огромного буфера. Помимо ваших постоянных пространств для хранения, памятьmalloc
ed может быть освобождена после использования. - person Jongware   schedule 11.08.2014getline(NULL, ...
для выделения буфера - person sapi   schedule 11.08.2014getline
, будут тратить место по крайней мере в том смысле, что выделяют больше, чем это абсолютно необходимо. - person mafso   schedule 11.08.2014