Как malloc внутри функции и вернуть указатель в C?

Ниже немного псевдо, но я пытаюсь это сделать. Проблема, как написано, возвращает пустой указатель.

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;
}

Это прекрасно работает, если у меня есть предопределенный размер, такой какchar str[100] = "" и я не пытаюсь испортить или освободить память после слов. Я должен быть в состоянии сделать размер динамическим, хотя.

Я также пытался это сделать, но, похоже, натолкнулся на испорченный указатель.

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;
}

Спасибо!

Ответы на вопрос(3)

Ваш ответ на вопрос