小编Dar*_*ell的帖子

填充数组的机制

我试图填充一系列结构,定义如下:

typedef struct{
    char directive[5];
}directive_nfo_t;
Run Code Online (Sandbox Code Playgroud)

通过使用以下内容:

directive_nfo_t directive_list[]=
{
   {"ALIGN"},{"ASCII"},{"BSS"},{"BYTE"},{"END"},{"EQU"},{"ORG"}
};
Run Code Online (Sandbox Code Playgroud)

令我惊讶的是,前几个元素被破坏了如下:

[0]= ALIGNASCIIBSS
[1]= ASCIIBSS
[2]= BSS
...
Run Code Online (Sandbox Code Playgroud)

直到我做出以下改变:

typedef struct{
    char directive[6];  <-- made char array +1
}directive_nfo_t;
Run Code Online (Sandbox Code Playgroud)

然后前几个数组是正确的,如下所示:

[0]= ALIGN
[1]= ASCII
[2]= BSS
...
Run Code Online (Sandbox Code Playgroud)

我的问题是在后台解释这种行为会发生什么?问候.

c arrays populate dynamic-arrays

2
推荐指数
1
解决办法
142
查看次数

标签 统计

arrays ×1

c ×1

dynamic-arrays ×1

populate ×1