К сожалению, из-за тех же правил, charStr также гарантированно инициализируется равным 0, поэтому ваш нулевой символ записывается по адресу 0 (где charStr указывает). В зависимости от среды выполнения, это может вызвать или не вызвать проблему.
#include <iostream>
#include <string>
#include <cstdlib>
using namespace std;
char *charStr;
int stringLength;
void genRandom() {
static const char alphanum[] =
"0123456789"
"!@#$%^&*"
"ABCDEFGHIJKLMNOPQRSTUVWXYZ"
"abcdefghijklmnopqrstuvwxyz";
for (int i = 0; i < stringLength; ++i) {
charStr[i] = alphanum[rand() % (sizeof(alphanum) - 1)];
}
charStr[stringLength] = 0;
}
int main()
{
while(true)
{
genRandom();
cout < charStr;
}
return 0;
}
ема возникает, когда вы ее компилируете. Он скомпилируется просто отлично, но ничего не отображается, и тогда программа перестанет работать. Итак, мой вопрос, что не так с этим кодом?