вернуть несколько значений из функции в C [duplicate]
На этот вопрос уже есть ответ здесь:
Указатель теряет свое значение + предупреждение компиляции execv 1 ответМоя первоначальная проблема заключается в том, что я хочу написать функцию, которая может возвращать мне два значения. Я знаю, что могу сделать это, передав адрес двум аргументам функции и непосредственно вычислив их значения внутри этой функции. Но при проведении эксперимента происходит нечто странное. Значение, которое я получил внутри функции, не может дойти до основной функции:
#include
#include
#include
void build(char *ch){
ch = malloc(30*sizeof(char));
strcpy(ch, "I am a good guy");
}
void main(){
char *cm;
build(cm);
printf("%s\n", cm);
}
Вышеуказанная программа просто выводит мусор. Итак, я хочу знать, чтоздесь не так. В конце концов, я хочу что-то вроде этогоparse(char **argv, char **cmd1, char **cmd2)
, который может разобрать две команды для меня из оригинальной команды argv. Было бы здорово, если бы кто-нибудь мог немного объяснить. Большое спасибо.