Как 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;
}
Спасибо!