-1
スレッドを作成し、文字列をパラメータとして送信します。そしてランダムにシャッフルする必要がありますが、ここに問題がありますchar *c = buffer[rand() % len + 1]
。 a value of type "char" cannot be used to initialize an entity of type "char *"
というエラーがあります。なぜ、どのように私はそれを解決することができますか?charの値を使用してcharのエンティティを初期化することはできません*
DWORD WINAPI secondThread(LPVOID lpParam) {
char *buffer = (char*)lpParam;
size_t len = strlen(buffer);
char result[CHAR_MAX];
char *c = buffer[rand() % len + 1];
int i = 0;
while (i < len) {
strcat(result, c);
i++;
}
cout << result << endl;
return 0;
}
へ
std::string result;
とstrcat(result, c);
へchar result[CHAR_MAX];
を切り替えるために、あなたをお勧め:これは十分ですあなたがあなたの中に 'CHAR_MAX'文字以上の文字列を得ることは決してないと分からない限り、新しいchar [len + 1]; – NathanOliverあなたの 'char *'は本当に 'const char *'でなければなりません。あなたは 'buffer'か' c'のどちらにも書くつもりはないので、文書の意図を書いているかもしれません。また、コンパイラが早い段階でバグを見つけられるようにしてください。さらに、 'len'が0または1でない限り、' result'の終わりを過ぎて書いています。 – IInspectable