私は C にかなり慣れていないので、学習の一環として、引数を必要とせずに入力の次の行である文字列を単純に返す関数を作成したいと考えています。
これは私がこれまでに持っているものです:
#define BUFFER 256
char *str;
char *getline()
{
if (str == 0)
str = (char*)calloc(BUFFER, sizeof(char));
if (fgets(str, BUFFER, stdin) != 0)
{
size_t len = strlen(str);
if (len > 0 && str[len-1] == '\n')
str[len-1] = '\0';
return str;
}
return 0;
}
さて、これはそのようなことをするための最良の方法ですか?あなたができるより良い方法はありますか?それが最善の方法である場合、割り当てたものをどこで解放する必要がありcalloc
ますか?