C++11 スレッドをいじる簡単なテスト プログラムを作成しました。
#include <iostream>
#include <stdlib.h>
#include <thread>
using namespace std;
void tee(int civ)
{
for(int loop=0; loop<19; loop++, civ++)
{
civ = civ%19;
cout << loop << "\t" << civ << endl;
this_thread::sleep_for(chrono::milliseconds(300));
}
}
void koot()
{
while(true)
{
cout << ":) ";
this_thread::sleep_for(chrono::milliseconds(300));
}
}
int main(int argc, char *argv[])
{
thread saie(tee, atoi(argv[1])),
kamaa(koot);
saie.join();
kamaa.join();
return 0;
}
コマンド ライン引数を指定する限り問題なく動作しますが、指定しないとクラッシュします。これはどのように解決できますか?引数の数を確認しようとしましたが、存在する場合は役に立ちませんでした。
編集:次の行を追加する必要がありました:
if(argc < 2) return 1;