我正在构建一个名为DATAMAP的结构,该结构旨在容纳TCPStreams的向量。
在声明该结构后,我将实例化对该结构的全局const引用。
我遇到的问题是全局const指针地址似乎正在从一个方法调用更改为下一个方法调用。请注意,没有分配,只是引用的用法。我只是试图使用该结构并访问我的Vec,称为“连接”。以下是声明:
//DECLARATIONS
struct datamap {
connections: Vec<TcpStream>,
}
impl datamap {
fn push(&mut self, conn: TcpStream) {
println!("Adding connection to vec");
self.connections.push(conn);
}
fn len(self) -> usize {
return self.connections.len();
}
}
impl fmt::Pointer for datamap {
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
write!(f, "{:p}", self as *const datamap)
}
}
// CREATE A STRUCT - Note we are global scope here
const app: datamap = datamap {
connections: Vec::new(),
};
// MAIN
fn main() {
println!("The address of the app struct is {:p}", app);
some_other_method(); // call another scope method to see issue
}
fn some_other_method() {
println!("The address of the app struct is {:p}", app);
}
输出结果如下:
应用程序结构的地址为0x7ffee8613180
应用程序结构的地址为0x7ffee8612fb8
const如何获得新地址?