Кто-нибудь знает, как правильно выписать строку кода, где эта программа сработает?
Я обнаружил, что это вызвано, пытаясь присвоить значение ячейки памяти Нулевой, но я борюсь, как писать правильно:Проблемы с указателями на C++
#include <cstdlib>
int position[10];
struct ONE {
int* ptr;
};
int* f(int x) {
return position + x;
}
int main() {
ONE * main_ptr = NULL;
main_ptr->ptr = f(4); // <-- crash
return 0;
}
Я был бы очень признателен, если кто-то может найти из-за проблемы и помочь мне
Название языка C++ не Cpp («каст» часто относится к C препроцессором). Когда программа прерывается, ее обычно называют «крахом», а не «раздавливанием». Фраза «двойной указатель» может относиться к типу 'double *'. Я бы предложил использовать фразу «указатель на указатель», но это не совсем то, что у вас здесь; 'main_ptr' является указателем на структуру, содержащую указатель. –
Нет таких вещей, как «двойные указатели». Есть указатели на указатели. И это «сбой», а не «раздавить». –