Ich versuche ein Programm zu erstellen, das ein Array einer bestimmten Größe erstellt und dieses Array dann um eins erweitert. Es muss auch das erste Array vor dem Funktionsaufruf und das neue Array nach dem Funktionsaufruf anzeigen. Wie erstelle ich eine Funktion, um ein Standard-Integer-Array oder ein eindeutiges Pointer-Array ohne Überladung zu verwenden?
#include <iostream>
#include <memory>
using namespace std;
unique_ptr<int[]> newCopy(int arry[], int items)
{
unique_ptr<int[]> p(new int[items + 1]);
p[0] = 0;
for (int i = 0; i < items; i++)
{
p[i + 1] = arry[i];
}
return p;
}
void displayArry(int arry[], int items)
{
for (int i = 0; i < items; i++)
{
cout << arry[i] << " ";
}
cout << endl;
}
int main()
{
const int SIZE = 5;
int myNumbers[SIZE] = {18, 27, 3, 14, 95};
displayArry(myNumbers, SIZE);
unique_ptr<int[]> newArry = newCopy(myNumbers, SIZE);
//displayArry(newArry, SIZE + 1);
for (int i = 0; i < SIZE+1; i++)
{
cout << newArry[i] << " ";
}
return 0;
}
ich würde die Display-Funktion so sowohl den normalen Integer-Array und den Smartpointer Array anzuzeigen, ohne die Funktion zu überlasten aufweisen.
Die Anzeigefunktion funktioniert hauptsächlich wie vorgesehen nur für das Standard-Integer-Array. Die Erweiterungsfunktion funktioniert und das neue eindeutige Zeigerarray zeigt die korrekten Werte an, wenn ich eine for-Schleife innerhalb der Hauptfunktion verwende, aber ich kann nicht herausfinden, wie beide in der Anzeigefunktion verwendet werden.