将指针传递给std::thread的正确方法是使用std::ref()函数来传递指针的引用。std::thread是C++标准库中的一个类,用于创建和管理线程。下面是正确的用法:
#include <iostream>
#include <thread>
void myFunction(int* ptr) {
// 执行操作,使用指针访问数据
std::cout << "Value pointed by ptr: " << *ptr << std::endl;
}
int main() {
int value = 42;
int* ptr = &value;
std::thread myThread(myFunction, std::ref(ptr));
// 等待线程执行完毕
myThread.join();
return 0;
}
在这个例子中,我们创建了一个指向整数的指针ptr,并将其传递给myFunction函数。使用std::ref(ptr)将指针的引用传递给std::thread,以确保正确地传递指针。
请注意,这只是将指针传递给std::thread的一种正确方法,具体取决于您的实际需求和代码结构。在实际应用中,您可能需要考虑线程安全性、资源管理等其他因素。
领取专属 10元无门槛券
手把手带您无忧上云