我试图填充一系列结构,定义如下:
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)
我的问题是在后台解释这种行为会发生什么?问候.