文字列を入力としてマルチスレッドプログラムを作成しようとしています。それは完全に正常に動作しますが、私は(例えば"123"
など、直接ではなく数123
)文字列に整数を入れるたびSDL_threadを文字列パラメータで作成する
#include <stdio.h>
#include <string>
#include <SDL_thread.h>
int threadFunction(void* data) {
std::string* parameter = static_cast<std::string *>(data);
printf("Thread data: %s\n", parameter);
return 0;
}
int main(int argc, char const *argv[]) {
SDL_Thread* threadID = SDL_CreateThread(threadFunction, "test", (void*)"Enter string here");
SDL_DetachThread(threadID);
return 0;
}
、その後の解析を試みる:SDL_CreateThread
を使用して、私はそうのような単純な実装を構築しようとしました整数のスレッドでは、私はSegmentation Fault: 11
を取得します。私の試みはint i = std::stoi(parameter->c_str());
誰でも説明できますか? void*
からキャストする必要がありますか?
ありがとうございました...私は誤って文字列だったので、 'std :: string'を使用しなければならないと思いました。 –