проблема в передаче массива указателей символов в качестве аргумента - PullRequest
0 голосов
/ 11 декабря 2011

Я только что изучил цель C и получил задание обернуть библиотеку C для вызова через цель C. У меня возникли проблемы с передачей массива указателей символов в функцию c.По сути, я вызываю основной метод программы c через цель c, но не могу передать аргументы.Ниже приведена функция, которую я пытаюсь вызвать из цели c:

int test_main( int argc, char *argv[] )

, где argv - аргументы командной строки, переданные из консоли, но теперь я хочу передать эти аргументы из цели cкод.Синтаксис командной строки программы C: . / Test -karg1 -larg2 -rarg3 ....

Пожалуйста, помогите мне, как я могу вызвать его через цель C (наверняка мне нужновыучить указатель в C).

С уважением, MP

1 Ответ

1 голос
/ 11 декабря 2011

Это не слишком сложно, и вам не нужно много знать об указателях:

// Initialize an array of four constant C strings
// (that is, pointers to zero-terminated char arrays)
const char* argv[] = {"./test", "-karg1", "-larg2", "-rarg3"};
// Call your test function
int res = test_main(4, argv);

Обратите внимание, что начальный аргумент (в позиции 0) - это имя программы.Именно этого ожидают C-программы: их первый «фактический» аргумент находится в позиции 1.

...