ich es geschafft, mein Problem mit diesem Code-Schnipsel zu verengen:Wie void Array von Void-Zeigern zu befreien?
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
void **arr;
int max = 10; //tr = 0;
int size = sizeof(int);
arr = malloc(max*sizeof(void*));
for (int i=0; i<=6; i++)
{
arr[i] = malloc(size);
memcpy(arr+i, &i, size);
}
for (int i=0; i<=6; i++)
{
printf("%d ", *(int*)(arr + i));
}
free(arr[0]);
free(arr[1]);
free(arr);
return 0;
}
Es ist okay, wenn ich arr
frei, und es ist in Ordnung, wenn ich arr[0]
befreien. Aber alles andere als das bekomme ich einen Segfault.
Mache ich die Zuordnungen falsch? Oder ist es etwas anderes?
'niz' nicht angemeldeten sein. Post kompilierbaren Code. – EOF
@EOF Ich habe es repariert, es funktioniert jetzt nicht richtig :) –