Имеются две программы, запускаются в линуксе, соединяясь через стандартный поток, т.е. так:
./prog_out | ./prog_in
В первой программе создается большой динамический массив. Вторая программа тоже с ним должна работать, но она его не меняет, только считывает. Поэтому нелогично создавать в ней такой же массив и копировать в него первый через стандартный поток. Хочется передать второй программе только указатель. Но оказалось, что передать тупо указатель (т.е. адрес массива) в стандартный вывод можно, а вот принять - нет.
Пример. Программа prog_out:
int *a;
a = new int;
*a = 100;
cout << a;
Программа prog_in:
int *b;
cin >> b;
Первая компилится, вторая при компиляции выдает ошибку.
Кто-нибудь знает, как добиться цели?
./prog_out | ./prog_in
В первой программе создается большой динамический массив. Вторая программа тоже с ним должна работать, но она его не меняет, только считывает. Поэтому нелогично создавать в ней такой же массив и копировать в него первый через стандартный поток. Хочется передать второй программе только указатель. Но оказалось, что передать тупо указатель (т.е. адрес массива) в стандартный вывод можно, а вот принять - нет.
Пример. Программа prog_out:
int *a;
a = new int;
*a = 100;
cout << a;
Программа prog_in:
int *b;
cin >> b;
Первая компилится, вторая при компиляции выдает ошибку.
Кто-нибудь знает, как добиться цели?