下面是一些psudo,但我試圖做到這一點。問題與書面一樣,它返回一個空白指針。如何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;
}
這工作得很好,如果我有一個預定義的大小,如焦炭海峽[100] =「」,我不嘗試的malloc或免費的內存後記。我需要能夠使尺寸動態。
我也試過這個,但似乎碰到了一個損壞的指針莫名其妙。
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;
}
謝謝!
+1看起來這是他真正想要做的。 – AusCBloke
這將是一個很好的選擇,除非在我的代碼中,變量「size」必須在testFunction中確定。標記的答案是針對我的問題的解決方案。謝謝。 – Fmstrat