Я случайно создал ошибку в программе путем саморегуляции в массиве. Здесь очень упрощенная демо-программа похожа на концепцию:
#include <iostream>
using namespace std;
int kTest[] = {
kTest[0]
};
int main() {
cout << kTest[0] << endl;
}
Я был удивлен, что не получил ни компиляторской ошибки, ни даже предупреждения в этом коде! В моем случае это привело к непредсказуемым результатам. Получает ли доступ к памяти мусора?
Мне было любопытно, при каких обстоятельствах это будет иметь четко определенный результат (если вообще!).
Изменить. Имеет ли значение значение kTest
static
? Что насчет const
? Оба?