動作しているように見えるこの単純なコードがあります (デバッガーで確認しました) が、関数の実行が終了すると、文字列は元の変数に保存されません。
void getString(char *iText);
int main()
{
char *inputText=malloc(sizeof(char));
getString(inputText);
puts(inputText);
free(inputText);
system("pause");
return 0;
}
void getString(char *iText)
{
char c;
int i=0;
while((c=getchar()) != '\n')
{
iText = realloc(iText,sizeof(char)*(i+1));
iText[i]=c;
i++;
}
iText = realloc(iText, sizeof(char)*(i+1));
iText[i]='\0';
}
この小さな台本が終わると、
ε■ε■ε■ε■ε■ε■ε■ε■ε■ε■ε■ε■▲יע`*
このコードをメイン関数に記述しても機能するので、関数でポインターを使用している方法に関係があると推測しています。