以下はいくつかの擬似ですが、私はこれを達成しようとしています。問題は書かれているとおりで、空白のポインターを返します。
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;
}
ありがとう!