Массивы не имеющие границ

Все о программировании под *nix
Soko1

Массивы не имеющие границ

Сообщение Soko1 »

Помогите пож-та разобраться...искал и в гугле, у преподавателя спрашивал, у многих друзей - никто не знает=(
Кароче, приведу пример:

Код: Выделить всё

#include <stdio.h>

int main()
{
char a[99];
scanf("%s", &a);
printf("%s\n",a);

Казалось бы ничего сложного нету в этой программе, но мне нужно сделать массив, в который я смогу вставлять стока символов, сколько мне заблагарассудится (тоесть, шоб небыло переполнения буфера). В одном сишном компиляторе я мог обьявить массив неог. длинны так

Код: Выделить всё

char a[];
Я не помню в каком...кароче это не важно, важно то, что gcc и g++ не понимает такого син-са, и правильно делает! подскажите как организовать мою задумку...

Гость

Сообщение Гость »

ой, так торапился, что забыл прогу закончить...

Код: Выделить всё

#include <stdio.h> 

int main()
{
char a[99];
scanf("%s", &a);
printf("%s\n",a);
}

Аватара пользователя
kostaLom
Маньяк
Сообщения: 170
Зарегистрирован: 24 авг 2002, 14:14
Откуда: 9-й Отдел
Контактная информация:

Сообщение kostaLom »

Границы массивов на си - головная боль. Как вариант - посимвольный ввод getche() и добавление к концу массива.

Аватара пользователя
exe
Неотъемлемая часть форума
Сообщения: 860
Зарегистрирован: 28 ноя 2003, 21:08
Откуда: Минск

Сообщение exe »

Очень просто если c++ - stringstream.
Если чистый С - была какая-то библиотечка именно для этого.
Или обрабатывай сам посимвольно

Аватара пользователя
Llama
Неотъемлемая часть форума
Сообщения: 9749
Зарегистрирован: 06 фев 2002, 11:40
Откуда: Менск

Сообщение Llama »

Гм, а чем списки не устраивают???
Опыт растет прямо пропорционально выведенному из строя оборудованию

Аватара пользователя
Pasha
Неотъемлемая часть форума
Сообщения: 554
Зарегистрирован: 06 окт 2002, 12:39
Откуда: Southampton
Контактная информация:

Сообщение Pasha »

If just for getting user input from command line, try _libreadline_

Гость

Сообщение Гость »

опция a для scanf?
Man решает

Гость

Сообщение Гость »

ниффига я не наш0л там. Я ж говорю, ни гугл ни...не может мне помоч

Аватара пользователя
Pasha
Неотъемлемая часть форума
Сообщения: 554
Зарегистрирован: 06 окт 2002, 12:39
Откуда: Southampton
Контактная информация:

Сообщение Pasha »

If you need user input, use libreadline. Otherwise allocate memory several times.

Ответить