0
저는 cpp 및 스레드의 초보자입니다. stackoverflow의 일부 코드 단편을 참조하여 pthread 함수에 여러 인수를 전달하고 아래 코드를 작성했습니다. 나는 (void *) 포인터를 사용하여 함수 내부의 구조체 멤버에 액세스하는 방법을 잘 모르겠습니다. 아무도 설명 할 수 있을까요?pthread 함수에 여러 매개 변수 전달 및 액세스
#include <iostream>
#include <pthread.h>
#include <vector>
using namespace std;
struct a{
vector <int> v1;
int val;
};
void* function(void *args)
{
vector <int>functionvector = (vector <int>)args->v1;
functionvector.push_back(args->val);
return NULL;
}
int main()
{
pthread_t thread;
struct a args;
pthread_create(&thread, NULL, &function, (void *)&args);
pthread_join(thread,NULL);
for(auto it : args.v1)
{
cout<<it;
}
return 0;
}
오류를 가져 오기 : 오류 : '무효 *'은 아닙니다 포인터로 객체 타입
캐스팅 한 유형으로 다시 캐스트해야합니다. '& args'는'a *'입니다. – molbdnilo
pthread가 아닌 std :: thread를 사용하십시오. –