c语言用指针使字符串逆置问题

img


图一为正确输入输出

但是为啥把自定义的inverse函数改成图二就输出错误了?
如下图

img

第二段里,定义了 char *temp; 是指针变量,char *temp = ftemp; 只保存一个指针的地址值。若要让它正常工作,修改如下,供参考:

while(ftemp < btemp)
    {
        char  *temp = (char *)malloc(sizeof(char));
        *temp  = *ftemp;
        *ftemp = *btemp;
        *btemp = *temp;
        ftemp++;
        btemp--;
    }