【问题标题】:How to initialize a unsigned char array?如何初始化无符号字符数组?
【发布时间】:2012-02-19 18:44:54
【问题描述】:

我真正想要实现的是一个动态字节模式数组,当我缓冲二进制文件时,我可以将其用作模式搜索器。但我现在开始基本。我有以下代码,我基于 StackOverflow 上的一个示例。

How to Initialize a Multidimensional Char Array in C?

typedef unsigned char BYTE;

int main()
{
    BYTE *p[2][4] = {
        {0x44,0x58,0x54,0x31},
        {0x44,0x58,0x54,0x00}
    };

    return 0;
}

我用 mingw32 for Windows 编译它。

D:\> gcc example.c -o example.exe

我在尝试编译时收到以下警告。

example.c: In function 'main':
example.c:6:3: warning: initialization makes pointer from integer without a cast [enabled by default]
example.c:6:3: warning: (near initialization for 'p[0][0]') [enabled by default]
example.c:6:3: warning: initialization makes pointer from integer without a cast [enabled by default]
example.c:6:3: warning: (near initialization for 'p[0][1]') [enabled by default]
example.c:6:3: warning: initialization makes pointer from integer without a cast [enabled by default]
example.c:6:3: warning: (near initialization for 'p[0][2]') [enabled by default]
example.c:6:3: warning: initialization makes pointer from integer without a cast [enabled by default]
example.c:6:3: warning: (near initialization for 'p[0][3]') [enabled by default]
example.c:7:3: warning: initialization makes pointer from integer without a cast [enabled by default]
example.c:7:3: warning: (near initialization for 'p[1][0]') [enabled by default]
example.c:7:3: warning: initialization makes pointer from integer without a cast [enabled by default]
example.c:7:3: warning: (near initialization for 'p[1][1]') [enabled by default]
example.c:7:3: warning: initialization makes pointer from integer without a cast [enabled by default]
example.c:7:3: warning: (near initialization for 'p[1][2]') [enabled by default]

我不明白这个警告的性质。我该如何解决它?谢谢。

【问题讨论】:

    标签: c multidimensional-array


    【解决方案1】:

    BYTE *p[2][4] 中删除*

    BYTE p[2][4] = {
        {0x44,0x58,0x54,0x31},
        {0x44,0x58,0x54,0x00}
    };
    

    您需要char 的多维数组:BYTE p[2][4] 而不是pointer-to-char 的多维数组。

    【讨论】:

    • 哇。这是一个很容易解决的问题。我很好奇。当我链接的示例使用的指针与我要查找的内容非常相似时,为什么要删除指针?
    • @redsolar 在该代码中,最里面的元素本身就是一个数组 ("00")。
    • 哦。我现在明白了。感谢您澄清并感谢您的回答。非常感谢。
    猜你喜欢
    • 2013-04-29
    • 1970-01-01
    • 2013-03-15
    • 2020-04-21
    • 1970-01-01
    • 1970-01-01
    • 2015-10-18
    • 1970-01-01
    • 2011-12-11
    相关资源
    最近更新 更多