我的程序运行正常,但在编译时显示警告

我的程序运行正常,但在编译时显示警告: “ ISO C11不允许从字符串文字转换为'char *'[-Wwritable-strings]         list.get_string(“输入字符串:”);“

代码如下:

char * getString(char *str)
{
    int ch, i;
    char *ptr = malloc(sizeof(int) * sizeof(char) + 1);
    i=0;
    printf("%s", str);
    while((ch=getchar())!='\n')
    {
        ptr[i] = ch;
        i++;
    }
    return ptr;
}

为什么在我的代码中显示警告? 另外,代码看起来有些混乱。有没有更好的方式编写此代码?

谢谢你的帮助。

评论