C
Tarsuinn schrieb:
Soweit passt das auch
Nö, das geht auch nicht durch den Compiler. Guck dir Zeile 3 mal an. Wofür ist da das malloc? Und in den Zeilen 4 und 5 nutzt du "->" statt ".".
Tarsuinn schrieb:
jetzt die frage wenn ich den dynamischen Vector beschreiben möchte muss ich doch erstmal für die einzelnen Elemente Speicher innerhalb des Vectors definieren, als beispiel hier 10 Int-Werte richtig?
Der Code den du gepostet hast macht überhaupt keinen Sinn. z.ptr ist NULL, und das dereferenzierst du dann. Das kann nur schief gehen.
#include <stdlib.h>
typedef struct int_vector
{
int *ptr;
size_t size;
} int_vector;
int resize_int_vector(int_vector *v, size_t new_size)
{
int *p = realloc(v->ptr, new_size);
if (p != NULL)
{
v->ptr = p;
v->size = new_size;
return 1;
}
return 0;
}
void reset_int_vector(int_vector *v)
{
free(v->ptr);
v->ptr = NULL;
v->size = 0;
}
int main(void)
{
int_vector v = {};
if (resize_int_vector(&v, 500))
{
v.ptr[499] = 45632; // Letzter gültiger Index.
reset_int_vector(&v);
}
return 0;
}