Ich bin neu in C-Programmierung. Ich möchte eine verknüpfte Liste erstellen, also tat ich es, aber es funktioniert nicht. Nachdem ich das gemacht habe, habe ich es für einen Test gemacht, aber es gibt immer noch einen Fehler.Wie kann ich ein Array neu zuweisen, das in einer anderen Funktion zugewiesen wurde?
malloc: Fehler für Objekt 0xa000000000000000: pointer realloc'd wird nicht zugewiesen wurde
einen Haltepunkt in malloc_error_break zu debuggen
Wie kann ich dieses Array umverteilen?
void Allocate(int **arr,int totalNum, int subNum)
{
for(int n=0;n<(totalNum+1);n++)
{
arr[n] = (int*)realloc(arr[n],(size_t)((subNum+1)*sizeof(int)));
}
}
int main()
{
int totalNum = 20;
int subNum = 5;
int **arr;
arr = (int**)malloc((totalNum+1)*sizeof(int*));
Allocate(arr,totalNum, subNum);
for(int n=1;n<(totalNum+1);n++)
{
for(int s=1;s<(subNum+1);s++)
{
arr[n][s] = rand()%5;
cout<<"arr["<<n<<"]["<<s<<"]: "<<arr[n][s]<<endl;
}
}
}
Ich kann nicht beginnen, die Frage zu verstehen. Verknüpfte Listen und Arrays sind verschiedene Dinge, wenn Sie nicht wissen, –
* Ich bin Newb auf C-Programmierung. * - Warum haben Sie dies als 'C++'? C++ hat 'std :: list', wenn Sie eine douby-verknüpfte Liste, eine' std :: forward_list' für eine einfach verknüpfte Liste und 'std :: vector' für dynamische Fehler wünschen. Daher muss Kodierung nicht so aussehen. – PaulMcKenzie
[nicht malloc] (https://stackoverflow.com/questions/605845/do-i-cast-the-result-of-malloc) – Barmar