У меня есть три функции одна внутри другой, они используют те же входные данные, что и в моем коде, каждый раз, когда я печатаю входные данные после того, как передал три функции, я получаю «0» в качестве значения.
Я пытался удалить «free ()», так как я думал, что из-за этого мои входные данные получают 0 в качестве значений, но если я это сделаю, код зависнет.
int Timeout;
char passcode[20];
void configuration(int *d, char *c) {
c = malloc(20 * sizeof(char));
d = malloc(sizeof(int));
*d = *d + 1;
readn(d, c);
free(c);
free(d);
return;
}
void readn(int *d, char *c) {
c = malloc(20 * sizeof(char));
d = malloc(sizeof(int));
*d = *d + 2;
configuration_SYS(d, c);
free(c);
free(d);
return;
}
void configuration_SYS(int *d, char *c) {
char *mdp = malloc(sizeof(20));
mdp = "1234";
c = malloc(20 * sizeof(char));
d = malloc(sizeof(int));
c = mdp;
*d = *d + 3;
free(mdp);
return;
}
void main() {
configuration(&Timeout, passcode);
printf("%d\n", Timeout);
for (int i = 0; i < 20; i++) {
printf("%c", passcode[i]);
}
}
Я ожидаю, чтополучить значения, отличные от 0, когда я печатаю две переменные.Тайм-аут должен равняться 6, а код доступа = "1234".