Gibt es einen Grund, warum die dynamische Zuweisung von Speicher mit dem Schlüsselwort „new“ manchmal einen Zeiger erzeuC++

Programme in C++. Entwicklerforum
Anonymous
 Gibt es einen Grund, warum die dynamische Zuweisung von Speicher mit dem Schlüsselwort „new“ manchmal einen Zeiger erzeu

Post by Anonymous »

Hier wird ein Zeiger newNum erstellt, der auf den neu zugewiesenen Speicher für eine Ganzzahl zeigt:

Code: Select all

#include 

int main() {
int* newNum = new int;
delete newNum;
}
Der gleichen Logik folgend dachte ich, dass newNums hier ein Zeiger wäre, der auf den neu zugewiesenen Speicher für ein Array von drei ints zeigt:

Code: Select all

#include 

int main() {
int* newNums = new int[3];
delete[] newNums;
}
newNums ist jedoch nicht vom Typ int*, sondern vom Typ int, da der folgende Code den Fehler erzeugt, dass ein Wert vom Typ „int *“ nicht einer Entität vom Typ „int“ zugewiesen werden kann:

Code: Select all

#include 

int main() {
int num = 123;
int* pointer = #

int* newNums = new int[3];
newNums[0] = pointer;

delete[] newNums;
}
Ich frage mich, warum im ersten Fall ein Zeiger erzeugt wird, im zweiten Fall jedoch kein Zeiger?
Bearbeiten: Ist newNums ein Zeiger?

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post