C: Element in / aus void Array einfügen / holen

Ich muss ein generisches Array erstellen, das generische Datenstrukturen enthalten kann. Wie kann ich eine generische Struktur in einen leeren Slot meines Void-Arrays einfügen?

Dies ist mein Code.

struct CircularBuffer {
    int E;
    int S;
    int length;   // total number of item allowable in the buffer
    int sizeOfType;   // size of each element in the buffer
    void *buffer;
};

struct CircularBuffer* circularBufferInit(int length, int sizeOfType) {

    struct CircularBuffer *cb = malloc(sizeof(struct CircularBuffer));
    cb->E = 0;
    cb->S = 0;
    cb->length = length;
    cb->sizeOfType = sizeOfType;
    cb->buffer = malloc(sizeOfType *length);
    return cb;
}

int circularBufferIsEmpty(struct CircularBuffer* cb) {
    if (cb->S == cb->E)
        return 1; //empty
    else
        return 0;
}

int circularBufferIsFull(struct CircularBuffer *cb) {
    int nE = (cb->E + 1) % (cb->length);
    if (nE == cb->S)
        return 1; //full
    else
        return 0;
}

void circularBufferAdd(struct CircularBuffer *cb, void* obj) {
    memcpy(cb->buffer + cb->E, obj, cb->sizeOfType);
}
[...]

memcpy ist das Problem ...

Antworten auf die Frage(2)

Ihre Antwort auf die Frage