스레드 생성을 처리하는 함수에 토큰 배열을 전달해야합니다. 이를 위해 함수가 여분의 void *aux
인수를 취할 수 있다는 사실을 사용하고 있습니다.char 포인터의 배열을 void 포인터로 변환 한 다음 다시 변환합니다.
기능 (마지막 인수는 내 질문에 관련) : 나는 통과하고있어 어떻게
char *argv[];
이것은 : 내가 문자열 토큰에 대한 포인터를 저장이 배열을 사용
tid_t
thread_create (const char *name, int priority,
thread_func *function, void *aux);
논증 (마지막 것은 관련이있다) :
thread_create (file_name, PRI_DEFAULT, start_process, argv);
그러나, 내가 다시하려고하면
char *argv[] = aux;
나는 다음과 같은 메시지가 받고 있어요 : 무효의 매개 변수를 통해 문자열 포인터의 배열을 전달하는 어떤 방법
error: invalid initialiser
거기를? 당신은 가변 길이 배열에 할당하려는
내 downvote를 취소 할 수 있도록 내 답변을 터치하고 싶을 수도 있습니다. – alk
그러나 'char **'로의 캐스트는 필요하지 않습니다. – alk
완료. 나는 당신이 옳은 대답을 지적한 이후에 누가 대표를해야하는지 당신에게 느낍니다. 모두를 위해 고맙습니다 :) – MBlanc