Ada is not memory safe language tho, while it might make it a bit harder to introduce those bugs.
If you have to use dynamic allocation, you could also use the built in container libraries or controlled types for additional safety.
Though if you want the kind of memory safety that Rust has, there's always SPARK (a subset of Ada).
You can install gnatprove with alire via "alr install gnatprove"
I still preferred frama-c, because C, but it's a really nice toolchain.