grossmutter: C/C++; Zeigt Zeiger auf ein Array?

Beitrag lesen

Hallo,

folgendes Problem;

  
int main(int argc, char** argv)  
{  
 char* p1 = (char*)NULL;  
 char* p2 = (char*)NULL;  
 char* _p1 = new char;  
 char* _p2 = new char[1024];  
  
 for(;(false);) {  
  short c = 0;  
  
  cout << "[1, 2]: \t";  
  
  cin >> c;  
  
  if(c == 1) {  
   p1 = _p1;  
   p2 = _p2;  
  } else if(c == 2) {  
   p2 = _p1;  
   p1 = _p2;  
  } else {  
   cout << "Du hast eine falsche Eingabe gemacht.\n";  
   return EXIT_FAILURE;  
  }  
  _p1 = (char*)NULL;  
  _p2 = (char*)NULL;  
  c = 0;  
  break;  
 }  
  
 /*  
  
 ...  
  
 */  
  
 if(p1 != (char*)NULL) {  
  delete p1;  
  p1 = (char*)NULL;  
 }  
  
 if(p2 != (char*)NULL) {  
  delete p2;  
  p2 = (char*)NULL;  
 }  
  
 return EXIT_SUCCESS;  
}  

Dieser Code ist sehr konstruiert und theoretisch.

Die for-Schleife habe ich nur geschrieben weil die Variable c danach nicht mehr verfügbar ist. Wird zwar eh auf 0 gesetzt, also die Eingabe ist weg, aber so wird es noch deutlicher.
Ich weis danach eben nicht was p1 und was p2 ist. (ob Array oder nicht)

Das eigentliche Problem das ich ansprechen möchte ist, das ich nicht weis ob ich ein Array löschen muss vom Heap oder eine einzelne Variable.
Kann man irgendwie in Erfahrung bringen ob p1+1 auch zu p1 gehört?

Weil wenn p1 auf eine einzelne Variable zeigt. Und ich p1+1 auch zu löschen versuche, geht das mächtig in die Hose.

Also ich fürchte mal das es nicht möglich ist? Habe ich recht?

Eure Grossmutter.