int (*ptr)[100];
tun
bedeutet ptr
ist ein Zeiger, der eine Adresse eines Arrays von 100 ganzen Zahlen enthalten sollte. Mit anderen Worten, technisch, wenn Sie haben, so etwas wie:
int arr[100]; // automatic (compile time allocated) object of 100 integers
Dann können Sie verwenden möchten:
ptr = &arr;
Aber das ist hier nicht der Fall. So können Sie mit einem einfachen Zeiger machen. Wenn Sie dynamische gehen wollen dann entweder Sie malloc
Äquivalent gehen:
int *p = new int[100]; // do `delete[] p` later to reclaim memory
Beachten Sie, dass, p
ist ein einfacher Zeiger, der die Adresse der ersten ganzen Zahl der dynamisch zugewiesenen Array enthält.
Aber besser ist es Standard-Container zu verwenden, jede Speicherverwaltung zu vermeiden:
std::vector<int> v(100);
Wenn die Größe 100 festgelegt ist, dann können Sie verwenden:
int a[100]; // C-style
Oder
std::array<int, 100> arr; // C++11 onwards
Wenn Sie requi re new
und haben keine Luxus über Einrichtungen verwenden wollen aber trotzdem die automatische Rückgewinnung von Speicher dann unique_ptr
als following verwenden:
std::unique_ptr<int[]> p(new int[100]);
In C++ werden Sie wahrscheinlich tun 'std: : Vektor v (100); '. –
Oder 'std :: array' in diesem Fall. –
Der elegante fehlerfreie Weg von C++ besteht darin, Arrays, Pointer oder 'new' zu vermeiden. –