К сожалению, из-за тех же правил, 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;

}

ема возникает, когда вы ее компилируете. Он скомпилируется просто отлично, но ничего не отображается, и тогда программа перестанет работать. Итак, мой вопрос, что не так с этим кодом?

Ответы на вопрос(0)

Ваш ответ на вопрос