【问题标题】:Warning: format argument is not a pointer (arg 2)?警告:格式参数不是指针(参数 2)?
【发布时间】:2013-01-31 23:37:20
【问题描述】:

我收到错误:警告:格式参数不是指针(参数 2)

使用这一行:printf("%s \n", *(group_list->name));

考虑到 name 是指向字符的指针,我不明白为什么这是一个问题。使用 s 有问题吗?我必须使用不同的说明符吗?

【问题讨论】:

    标签: c pointers char printf


    【解决方案1】:

    改用这个:

    printf("%s \n", group_list->name);
    

    s 转换说明符需要 char * 而不是 char

    【讨论】:

    • 我确实使用了它,但我没有正确获得输出。由于某种原因,我只是将其显示为输出:s
    • @shh 在这种情况下,您的 group_list->name 字符串未正确初始化。查看写入group_list->name 字符串的代码部分。
    • 这就是我所做的:newgroup->name = (char *) group_name;这是不正确的吗? group_name 作为一个参数,它是 const char
    • @shn 为什么选演员? group_name 的类型是什么?如果是char *,检查group_name的写入位置没有问题。
    • group_name 是 const char,因此是演员表。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-13
    • 2011-05-24
    • 2019-10-14
    相关资源
    最近更新 更多