C указывает char ** в другую исходную позицию? - PullRequest
0 голосов
/ 01 марта 2012

У меня сейчас что-то в форме

char** args = { "a", "s", "d", "f" };

То, что я хочу, это

char** newArgs = { "s", "d", "f" }; 

Какой самый простой способ сделать это?

Спасибо.

Ответы [ 3 ]

9 голосов
/ 01 марта 2012

Возможно, это:

newargs = args + 1;

Или, может быть:

newargs = &args[1];
3 голосов
/ 01 марта 2012

Если вам нужен независимый набор указателей:

char **newArgs = calloc(3, sizeof(*newArgs));
memcpy(newArgs, args + 1, 3*sizeof(*newArgs));

в противном случае:

char **newArgs = args + 1;
1 голос
/ 01 марта 2012

Вы можете просто использовать

newArgs = &args[1];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...