Dar*_*ell 2 c arrays populate dynamic-arrays
我试图填充一系列结构,定义如下:
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)
我的问题是在后台解释这种行为会发生什么?问候.
Joh*_*ode 13
在C中,字符串是一系列字符值,后跟一个0值终结符; 的字符串 "ASCII"由字符序列表示'A','S','C','I','I',0.因此,您需要一个六元素数组来存储字符串.
对于N字符长的字符串,您需要一个N+1字符数组来存储它.
| 归档时间: |
|
| 查看次数: |
142 次 |
| 最近记录: |