просто одно число инт 🤯
Угу, arr.as_ptr
Не смей, это же dangling pointer
Если массив который выше, то вроде нормальный
Это с чего бы? Чтобы так делать, нужно сначала сделать ссылку &'static [i32; 1]
Так там массив константа, чому бы ему удалиться?
Литералы ж в статик памяти будут
А может в стек копируется сначала?
Почему нет?
Тоже аргумент
раст перестал ругаетться !) pub extern "C" fn test() -> *const i32 { [99].as_ptr() } в дарте на вход дал Array<Int32> но выход дарта заругался на его родной List<int> теперь и с дартом разбираться как там прием-выход по типам оформить🤯
Там выше прочитай оно, удалить массив может(может и не может, но я ща ничего об этом найти не могу)
Поменяй на let r: &'static [i32] = &[99]; r.as_ptr()
Да, в unsafe на тебя ругается не компилятор, а люди.
Константа на месте выражения уже более не является константой, и as_ptr на нём скорее всего уб при любых обстоятельствах. Надо сначала убедиться, что ссылка имеет статик лайфтайм.
Обсуждают сегодня