вернуть несколько значений из функции в C [duplicate]
На этот вопрос уже есть ответ здесь:
Указатель теряет свое значение + предупреждение компиляции execv 1 ответМоя первоначальная проблема заключается в том, что я хочу написать функцию, которая может возвращать мне два значения. Я знаю, что могу сделать это, передав адрес двум аргументам функции и непосредственно вычислив их значения внутри этой функции. Но при проведении эксперимента происходит нечто странное. Значение, которое я получил внутри функции, не может дойти до основной функции:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
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. Было бы здорово, если бы кто-нибудь мог немного объяснить. Большое спасибо.