注释中的"访问已经被销毁的指针"是怎么回事, main函数又没有结束, x的地址怎么会被销毁?
#include <iostream>
#include <thread>
void foo(int* ptr) {
std::cout << *ptr << std::endl; // 访问已经被销毁的指针
}
int main() {
int x = 1;
std::thread t(foo, &x); // 传递指向局部变量的指针
t.join();
return 0;
}
.join()作用是等待子线程执行完毕再执行主线程, 所以局部变量x应该不可能在子线程执行期间被销毁, 可实际上被销毁了, 这是为什么