相关疑难解决方法(0)

如何在C中将数组初始化为0?

我需要在C中使用一个大的空数组作为全局数组.除了输入外,还有什么方法可以做到这一点

char ZEROARRAY[1024] = {0, 0, 0, /* ... 1021 more times... */ };
Run Code Online (Sandbox Code Playgroud)

c arrays initialization

150
推荐指数
2
解决办法
25万
查看次数

为什么我的struct的成员没有使用`{}`正确初始化?

我有以下代码:

#include <iostream>

struct T
{
   int a, b, c;
};

int main()
{
   T t = {0};
   std::cout << t.a << ',' << t.b << ',' << t.c << '\n';
}
Run Code Online (Sandbox Code Playgroud)

输出:

0,0,0
Run Code Online (Sandbox Code Playgroud)

经过多年的代码在一个关键的生产环境中愉快地运行,提供一个重要的功能,项目的要求发生了变化,我需要输出1,1,1.

于是,我换{0}{1}:

#include <iostream>

struct T
{
   int a, b, c;
};

int main()
{
   T t = {1};
   std::cout << t.a << ',' << t.b << ',' << t.c << '\n';
}
Run Code Online (Sandbox Code Playgroud)

输出:

1,0,0
Run Code Online (Sandbox Code Playgroud)

1,1,1反而期待了. …

c++ initialization c++-faq

14
推荐指数
1
解决办法
4647
查看次数

当您编写标签时,Assembly是否会创建内存位置?

例如,我有以下代码(MikeOS).

jmp short bootloader_start  ; Jump past disk description section
nop                         ; Pad out before disk description
...
...

OEMLabel            db "MIKEBOOT"   ; Disk label
BytesPerSector      dw 512          ; Bytes per sector
SectorsPerCluster   db 1            ; Sectors per cluster
ReservedForBoot     dw 1            ; Reserved sectors for boot record
NumberOfFats        db 2            ; Number of copies of the FAT

bootloader_start:
    mov ax, 07C0h           ; Set up 4K of stack space above buffer
    add ax, 544             ; 8k buffer = …
Run Code Online (Sandbox Code Playgroud)

x86 assembly bootloader x86-16

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

标签 统计

initialization ×2

arrays ×1

assembly ×1

bootloader ×1

c ×1

c++ ×1

c++-faq ×1

x86 ×1

x86-16 ×1