C语言利用指针来存输入的字符串的问题

这个函数是可以得到str的:            
            #include <ctype.h>
            char * getword(char * str)
            {
                    int i;
                    int ch;

                    while ((ch = getchar()) != EOF && !isspace(ch))
                            *str++ = ch;
                    *str = '\0';
                    if (ch == EOF)
                            return NULL;
                    else
                    {
                            while (ch != '\n')
                                    ch = getchar();
                            return str;
                    }
            }

但是把上面的单独拿出来就不能用的,如果定义str是数组,然后ch一个个存进去又是可以实现:
#include
int main(void)
{
char * str;
char * tmp;
int ch,i;

                tmp = str;
                while ((ch = getchar()) != EOF && ch != '\n')
                    *str++ = ch;
                *str = '\0';
                puts(tmp);
                return 0;
            }

关键词——函数中参数的释放

因为你第一个返回的是指向字符串的最后一个字符的指针,所以根本没用