We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
There was an error while loading. Please reload this page.
1 parent e79ee14 commit 4cae50cCopy full SHA for 4cae50c
tests/run-pass/write-bytes.rs
@@ -1,3 +1,11 @@
1
+#[repr(C)]
2
+#[derive(Copy, Clone)]
3
+struct Foo {
4
+ a: u64,
5
+ b: u64,
6
+ c: u64,
7
+}
8
+
9
fn main() {
10
const LENGTH: usize = 10;
11
let mut v: [u64; LENGTH] = [0; LENGTH];
@@ -14,4 +22,24 @@ fn main() {
14
22
for idx in 0..LENGTH {
15
23
assert_eq!(v[idx], 0xabababababababab);
16
24
}
25
26
+ // -----
27
28
+ let mut w: [Foo; LENGTH] = [Foo { a: 0, b: 0, c: 0 }; LENGTH];
29
+ for idx in 0..LENGTH {
30
+ assert_eq!(w[idx].a, 0);
31
+ assert_eq!(w[idx].b, 0);
32
+ assert_eq!(w[idx].c, 0);
33
+ }
34
35
+ unsafe {
36
+ let p = w.as_mut_ptr();
37
+ ::std::ptr::write_bytes(p, 0xcd, LENGTH);
38
39
40
41
+ assert_eq!(w[idx].a, 0xcdcdcdcdcdcdcdcd);
42
+ assert_eq!(w[idx].b, 0xcdcdcdcdcdcdcdcd);
43
+ assert_eq!(w[idx].c, 0xcdcdcdcdcdcdcdcd);
44
17
45
0 commit comments