When filling the struct, python sets `view.shape = &view.len`, so that `view.shape` is a pointer into the just filled struct. After copying, we got `mview->view.shape = &view.len`. But `view` is just temporary, so `&view.len` points to some random place that may be overwritten by the time we actually read `mview->view.shape[0]`.