Считать строку на C

Считать строку на C
Нужно считать строку через scanf в массив char

Например: (не рабочий)

char *c;
scanf("%s", &c);

Т.е. нужно считать строку, длина которой заранее неизвестно.

Можно ли как то это сделать, что бы заранее не указавать размер, т.е. без char c[N];

  • Надо создать проверку на конец массива и все будет ГУД :-)
  • динамически создать память через функцию malloc
  • Почти никак, нормально только в C++. Ну или выделить заранее динамически массив с запасом типа c[10000], cчитать туда строку, а потом создать новый массив по фактической длине строки, а старый ликвидировать. Или писать свою функцию для посимвольного ввода с посимвольным выделением памяти - нечто ужасное...
    Переходи на C++.
  • В функцию идет указатель на переменную С, а не на то, куда она указывает.
    Конкретно тут надо писать:
    scanf( "%s", c );
    А вот если
    char c[100];
    То тогда
    scanf( "%s", &c );
    Или даже
    scanf( "%s", &c[ 0 ] );