int *pointer = new int[4]{3,4,2,6};
EDIT: Comme indiqué dans les commentaires, c'est C++ 0x syntaxe. Pour ce faire dans les versions antérieures, écrivez une fonction qui prend un tableau de pile + taille, alloue un nouveau tableau sur le tas, boucle sur le tableau de pile en remplissant le tableau de tas, puis retourne un pointeur vers le tableau de tas.
int* foo(const int size, int *array)
{
int *newArray = new int[size];
for(int index = 0; index < size; ++index)
{
newArray[index] = array[index];
}
return newArray;
}
L'appel ressemblerait à ceci:
int a[] = { 1, 2, 3, 4 };
int *ptr = foo(4, a);
Il prend deux lignes, mais au moins est plus facile que l'initialisation ligne par ligne.
Est-ce que cela fait partie des exigences? Vous ne l'avez pas mentionné dans votre question. –
Eh bien, je veux juste un moyen que je peux mettre à jour le même pointeur vers de nouveaux tableaux, mais les tableaux doivent être initialisés. Donc, je pense que cela doit être fait sur le tas, mais de toute façon cela fonctionne me rendra heureux. – Alex
Quelle est la plus grande image ici? – GManNickG