öğesinin başlatılması için kullanılamaz. Bir iş parçacığı oluşturur ve bir dizeyi parametre olarak gönderir. Ve ben rasgele rastgele shuffle gerekiyor ama burada bir sorunum var char *c = buffer[rand() % len + 1]
. Bir hatam var a value of type "char" cannot be used to initialize an entity of type "char *"
. Neden ve nasıl çözebilirim?char değeri, 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;
}
Sen * char atamak için bir adres almalıdır
için
std::string result;
vestrcat(result, c);
içinchar result[CHAR_MAX];
geçmek için tavsiye;' Char * Sonuç 'ile = yeni char [len + 1]; 'Eğer bilemezseniz, hiçbir zaman içinde 'CHAR_MAX' karakterinden daha fazla bir dize alamayacaksınız. – NathanOliver'char *', gerçekten 'const char *' olmalıdır. “Buffer” ya da “c” ye yazmayı düşünmüyorsunuz, bu yüzden de niyetinizi belgeleyebilirsiniz. Ve derleyici, hataları erkenden bulmanızda yardımcı olur. Artı, '0'ın sonu geçmiyorsa,' '' 0 ya da 1’dir. – IInspectable