#include <iostream>
using namespace std;
int main() {
int flag;
cin >> flag;
int* sensorPtr = nullptr; // אתחול פוינטר ריק כברירת מחדל
if (flag == 1) {
sensorPtr = new int; // הקצאת זיכרון דינמית על ה-Heap
cin >> *sensorPtr; // קריאת הערך לתוך הכתובת אליה מצביע הפוינטר
}
// --- הלוגיקה שחסרה ---
if (sensorPtr == nullptr) {
// בדיקה האם הפוינטר עדיין מצביע לכלום
cout << "NO SENSOR" << endl;
} else {
// גישה לערך (Dereferencing) רק לאחר שווידאנו שהוא לא null
cout << *sensorPtr << endl;
}
// -----------------------
delete sensorPtr; // ב-C++ זה בטוח לבצע delete על nullptr (לא קורה כלום)
sensorPtr = nullptr; // פרקטיקה טובה ב-Firmware: איפוס הפוינטר לאחר המחיקה
return 0;
}
Expected Output
NO SENSOR