将char **类型的数组传递为void **类型的参数会发出意外警告

加玛尔·奥斯曼|

在函数中传递指针数组(char **)作为void **类型的参数时,我有一个警告。

下面是我的代码。我使用gcc编译器,它给了我这个警告:

“警告:从不兼容的指针类型[默认启用]中传递'print'的参数1”。

它指向这条线 print(lineptr, 2);

另一个警告说:

警告:格式'%s'期望的参数类型为'char *',但是参数2的类型类型为'void *'。

它指向这条线 printf("%s\n", *v++);

我试图替换所有void**char**和它工作得很好。

我要使用的原因void**是我正在编写一个可以同时接收字符或整数数组的quicksort函数。

#include <stdio.h>
char *lineptr[100] = {"mister", "x"};
void print(void **, int n);
int main()
{
    print(lineptr, 2);
    return 0;
}
void print(void **v, int n)
{
    while( n-- > 0 )
        printf("%s\n", *v++);
}

问题是:此警告是否有影响?

现在,我在运行代码和获得所需的输出方面没有问题,但是我问是否每次都能保证此方法能正常工作。

先感谢您!

'

您可以将char数组转换为void

print((void **)lineptr, 2);

通常,最好注意警告并解决问题,以避免未定义的行为。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

将 char** 传递给 void** 函数参数时,与指针类型不兼容的指针类型警告

来自分类Dev

将“void”传递给不兼容类型“const char *”的参数?

来自分类Dev

警告:格式'%p'期望类型为'void *'的参数,但是参数3的类型为'char **'

来自分类Dev

将数组传递给函数:数组必须为“ Sized”类型

来自分类Dev

也将函数传递为void *,参数也传递为void *

来自分类Dev

无法将char * [2]类型的数组的地址传递给采用char ***的函数

来自分类Java

将类类型传递为参数

来自分类Dev

将'const char *'传递给'char *'类型的参数将丢弃限定符

来自分类Dev

Haskell:无法将类型'[Char]'与`Char'匹配

来自分类Dev

将2D数组传递给函数时,无法将参数'1'的'char(*)[50]'转换为'char **'到'void prac(char **)'

来自分类Dev

将void传递给不兼容类型的参数?

来自分类Dev

警告:格式为'c'的参数类型为'int',但是参数2的类型为'char'

来自分类Dev

将void传递为out参数

来自分类Dev

不兼容的指针类型将“char [3]”传递给“FILE *”类型的参数

来自分类Dev

将类型数组减少为单个类型?

来自分类Dev

警告:格式“%s”需要“char *”类型的参数,但参数 2 的类型为“__dev_t”[-Wformat=]

来自分类Dev

如何将类型为void(*)()的指针转换为void *

来自分类Dev

以void指针作为参数传递函数会发出警告

来自分类Dev

将指针传递给char数组作为函数的参数-C

来自分类Dev

警告:格式指定类型参数类型 const char *

来自分类Java

可以将char类型归类为整数吗?

来自分类Dev

C#Console.WriteLine将Char类型打印为Integer

来自分类Dev

将参数传递给 GUIDE GUI 时发出警告

来自分类Dev

将list <T>或数组作为IEnumerable类型的参数传递

来自分类Dev

如何将参数类型数组传递给Type []?

来自分类Dev

将数组参数传递给Kaitai Struct用户定义类型

来自分类Dev

无法将类型“[Char]”与“Char”匹配到 spa

来自分类Dev

haskell-无法将类型'(Char,Int)'与'[Char]'错误匹配

来自分类Dev

格式指定类型为'char *',但参数的类型为'char **'

Related 相关文章

  1. 1

    将 char** 传递给 void** 函数参数时,与指针类型不兼容的指针类型警告

  2. 2

    将“void”传递给不兼容类型“const char *”的参数?

  3. 3

    警告:格式'%p'期望类型为'void *'的参数,但是参数3的类型为'char **'

  4. 4

    将数组传递给函数:数组必须为“ Sized”类型

  5. 5

    也将函数传递为void *,参数也传递为void *

  6. 6

    无法将char * [2]类型的数组的地址传递给采用char ***的函数

  7. 7

    将类类型传递为参数

  8. 8

    将'const char *'传递给'char *'类型的参数将丢弃限定符

  9. 9

    Haskell:无法将类型'[Char]'与`Char'匹配

  10. 10

    将2D数组传递给函数时,无法将参数'1'的'char(*)[50]'转换为'char **'到'void prac(char **)'

  11. 11

    将void传递给不兼容类型的参数?

  12. 12

    警告:格式为'c'的参数类型为'int',但是参数2的类型为'char'

  13. 13

    将void传递为out参数

  14. 14

    不兼容的指针类型将“char [3]”传递给“FILE *”类型的参数

  15. 15

    将类型数组减少为单个类型?

  16. 16

    警告:格式“%s”需要“char *”类型的参数,但参数 2 的类型为“__dev_t”[-Wformat=]

  17. 17

    如何将类型为void(*)()的指针转换为void *

  18. 18

    以void指针作为参数传递函数会发出警告

  19. 19

    将指针传递给char数组作为函数的参数-C

  20. 20

    警告:格式指定类型参数类型 const char *

  21. 21

    可以将char类型归类为整数吗?

  22. 22

    C#Console.WriteLine将Char类型打印为Integer

  23. 23

    将参数传递给 GUIDE GUI 时发出警告

  24. 24

    将list <T>或数组作为IEnumerable类型的参数传递

  25. 25

    如何将参数类型数组传递给Type []?

  26. 26

    将数组参数传递给Kaitai Struct用户定义类型

  27. 27

    无法将类型“[Char]”与“Char”匹配到 spa

  28. 28

    haskell-无法将类型'(Char,Int)'与'[Char]'错误匹配

  29. 29

    格式指定类型为'char *',但参数的类型为'char **'

热门标签

归档