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?