LINUX.ORG.RU

Запуск проги....& массив


0

0

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

и еще..... КАК СОЗДАТЬ МАССИВ СТРОК ??????
типа : x:array [0..100] of string;
 HELP !!!!!!!!!!!!!!!
anonymous

int rc, status;

rc = fork ();
if (rc == -1) {...};
if (rc == 0)
execve (PROGRAM_NAME, argv_2, environ);
waitpid (rc, &status, 0);


По поводу массива не понял. Его таки создать или объявить нужно?
если создать, то
int * arr = (int *)malloc (100*sizeof(int));

если объявить, то
int arr[100];

Murr ★★
()

2Murr:

А чем принципиально отличаются две ваши последние конструкции, кроме 
местоположения выделенной памяти?

2anonymous:

по поводу создания массива строк в С лучше что-нибудь почитать на тему
указателей, malloc, и т.п.

Простыми способами можно создать только массивы строк-констант.
ex:
char* a[]={"Строка 1","Строка 2" // и т.д.
};

Со строками проще осваиваться в C++. Там есть тип string. Но зато массивы рекоммендуется создавать по другому.

gena2x ★★★
()
Ответ на: комментарий от gena2x

временем выделения памяти.

в случае объявления память будет выделена либо в .data в бинарнике, либо в .bss либо как automatic - в стеке.

в случае создания память будет выделена в brk/anon_map в тот момент, когда она понадобится и в том объеме, который понадобится.

P.S. Я думаю, что ты всё это знаешь, но раз уж спросил ;)

Murr ★★
()

char array[100][256]; отвыкать надо от паскалевского прошлого :)

grustnoe ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.