Fix array size: 1 << 30 fails on a 32-bit ARM system but 1 << 28 works
diff --git a/cgo.md b/cgo.md
index daf2afa..3c0ac3d 100644
--- a/cgo.md
+++ b/cgo.md
@@ -280,7 +280,7 @@
...
var theCArray *C.YourType = C.getTheArray()
length := C.getTheArrayLength()
- slice := (*[1 << 30]C.YourType)(unsafe.Pointer(theCArray))[:length:length]
+ slice := (*[1 << 28]C.YourType)(unsafe.Pointer(theCArray))[:length:length]
```
It is important to keep in mind that the Go garbage collector will not interact with this data, and that if it is freed from the C side of things, the behavior of any Go code using the slice is nondeterministic.