Jak malloc wewnątrz funkcji i zwracać wskaźnik w C?
Poniżej znajduje się kilka psudo, ale staram się to osiągnąć. Problem jest taki, jak napisano, zwraca pusty wskaźnik.
int testFunction(char *t) {
int size = 100;
t = malloc(100 + 1);
t = <do a bunch of stuff to assign a value>;
return size;
}
int runIt() {
char *str = 0;
int str_size = 0;
str_size = testFunction(str);
<at this point, str is blank and unmodified, what's wrong?>
free(str);
return 0;
}
Działa to dobrze, jeśli mam predefiniowany rozmiar, taki jakchar str [100] = "" i nie próbuję wymusić ani zwolnić pamięci po słowach. Muszę jednak być w stanie dynamicznie zmienić rozmiar.
Wypróbowałem to, ale wydaje mi się, że w jakiś sposób działa na uszkodzony wskaźnik.
int testFunction(char **t) {
int size = 100;
t = malloc(100 + 1);
t = <do a bunch of stuff to assign a value>;
return size;
}
int runIt() {
char *str = 0;
int str_size = 0;
str_size = testFunction(&str);
<at this point, str is blank and unmodified, what's wrong?>
free(str);
return 0;
}
Dzięki!