обратиться к выделенной unsafe памяти?
                  
                  
                          // здесь p - сырой указатель
                  
                  
                          let p: *mut i8 = mmap(ptr::null_mut(), 1024, PROT_READ | PROT_WRITE | PROT_EXEC, 0, 0, 0) as *mut i8;
                  
                  
                          // хочу делать вот так, но ошибка
                  
                  
                          *p[1] = 0;
                  
                  
                          // непонимаю, что можно сделать со слайсом?
                  
                  
                          let slice = slice::from_raw_parts_mut(p as *mut i8, 1);
                  
                  
                
в расте индексация на поинтерах не пашет, надо в слайс собирать и думать
кажется в последней строчке должно быть let mut slice = ..., чтобы писать туда
Как ни странно, но mut для слайса оказался не нужен. let p: *mut i8 = mmap(addr, size, prot, MAP_PRIVATE | MAP_ANONYMOUS, 0, 0) as *mut i8; println!("errno {}", errno::errno()); // хочу делать вот так //*p[1] = 0; let slice = slice::from_raw_parts_mut(p, 10); работает!
Обсуждают сегодня