основном то, что я пытаюсь сделать, это инициализировать мой массив внутри функции, но она возвращает ошибку сегментации:Инициализировать массив указателей на справочном C++
void func(int **a, int x, int y) {
a = new int*[x];
for (int i=0; i<x; i++)
a[i] = new int[y];
}
void main() {
int **a;
func(a, 2, 3);
}
Однако, если я инициализировать массив вне функции затем передать его, все отлично работает, я могу присвоить ему значения/напечатать их. То, с чем я борюсь, это передать ссылку на мой массив, поэтому мне не нужно запускать его вне функции.
void func(int **a, int x, int y) {
for (int i=0; i<x; i++)
a[i] = new int[y];
}
void main() {
int x = 2;
int **a = new int*[x];
func(a, x, 3);
}
Я не верю, что код SEG-ошибки. Однако имейте в виду, что 'a' в' main' не изменяется. –
Я теряю интерес во второй, я вижу 'int ** a', предположительно, код C++ – sehe