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!

questionAnswers(3)

yourAnswerToTheQuestion