У меня есть динамический массив в структуре и метод, который использует динамический массив. Проблема в том, что я получаю ошибку нарушения диапазона при запуске программы. Однако, когда я создаю новый динамический массив внутри метода, он работает нормально. Следующий код вызывает проблему.
struct MyStr {
int[] frontArr;
this(int max = 10) {
frontArr = new int[10];
}
void push(int x) {
frontArr[0] = x;
}
}
void main() {
MyStr s;
s.push(5);
}
Однако, этот работает;
struct MyStr {
int[] frontArr;
this(int max = 10) {
frontArr = new int[10];
}
void push(int x) {
frontArr = new int[10]; // <---Add this line
frontArr[0] = x;
}
}
void main() {
MyStr s;
s.push(5);
}
Я в основном добавляю эту строку, чтобы проверить область. Похоже, инициализированный FrontArr нельзя увидеть в методе push (int x). Любое объяснение?
Заранее спасибо.