Висячий указатель в динамически размещенном массиве указателей

Это свисающий указатель?

int x = 25;
int** arr = new int*[5];
*arr[1] = x;

Я не могу понять, почему это не работает … * arr [1] является просто указателем и указывает на действительный адрес памяти.

0

Решение

arr[1] является int*и это неинициализировано. Это неопределенное поведение — разыменовать его.

Ты мог бы сказать arr[1] = &x;, затем arr[1] будет указывать на x а также *arr[1] было бы 25.


Не забывай delete [] arr; когда вы закончите.

5

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector