Страница 1 из 1

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

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

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

#include <stdio.h>

int main()
{
char a[99];
scanf("%s", &a);
printf("%s\n",a);
Казалось бы ничего сложного нету в этой программе, но мне нужно сделать массив, в который я смогу вставлять стока символов, сколько мне заблагарассудится (тоесть, шоб небыло переполнения буфера). В одном сишном компиляторе я мог обьявить массив неог. длинны так

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

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

Добавлено: 31 мар 2004, 18:21
Гость
ой, так торапился, что забыл прогу закончить...

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

#include <stdio.h> 

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

Добавлено: 31 мар 2004, 21:02
kostaLom
Границы массивов на си - головная боль. Как вариант - посимвольный ввод getche() и добавление к концу массива.

Добавлено: 31 мар 2004, 22:50
exe
Очень просто если c++ - stringstream.
Если чистый С - была какая-то библиотечка именно для этого.
Или обрабатывай сам посимвольно

Добавлено: 31 мар 2004, 23:50
Llama
Гм, а чем списки не устраивают???

Добавлено: 01 апр 2004, 18:25
Pasha
If just for getting user input from command line, try _libreadline_

Добавлено: 05 апр 2004, 16:36
Гость
опция a для scanf?
Man решает

Добавлено: 07 апр 2004, 16:43
Гость
ниффига я не наш0л там. Я ж говорю, ни гугл ни...не может мне помоч

Добавлено: 07 апр 2004, 21:29
Pasha
If you need user input, use libreadline. Otherwise allocate memory several times.