scanf ("%d", &i);
эти коды являются одинаковыми // динамический буфер распределения (строка символов) size = i;динамический буфер распределения (строка символов) size = i; используя malloc
char *buffer = malloc (sizeof((*buffer)*(i+1)));
free(buffer);
char * buffer;
buffer = (char*) malloc (i+1);
free(buffer);
если да, то это более безопасно (лучше)?
Помните, что 'SizeOf (Char)' является * * гарантированно будет один. И не бросайте результат функции, возвращающей 'void *' (например, 'malloc'). –
buffer = malloc (sizeof (char) * (i + 1)); –
'sizeof ((* buffer) * (i + 1))' такое же, как 'sizeof (int)', ваши скобки не упорядочены правильно. – interjay