1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | #include <stdio.h> #include <stdlib.h> struct RingBuffer { size_t head; size_t tail; size_t count; size_t size; char *rbArray[]; }; struct RingBuffer *rb_create(size_t nelems){ struct RingBuffer *new; new = malloc(sizeof *new + nelems * sizeof *new->rbArray); if (new) { /* for (size_t i = 0; i < nelems; i++) new->rbArray[i] = NULL; */ new->head = new->tail = new->count = 0; new->size = nelems; } return new; } int main(void) { struct RingBuffer *rb = rb_create(100); printf("head: %d\ntail: %d\ncount: %d\n", (int)rb->head, (int)rb->tail, (int)rb->count); free(rb); return 0; } |
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdGRsaWIuaD4KCnN0cnVjdCBSaW5nQnVmZmVyIHsKICAgICAgICBzaXplX3QgaGVhZDsKICAgICAgICBzaXplX3QgdGFpbDsKICAgICAgICBzaXplX3QgY291bnQ7CiAgICAgICAgc2l6ZV90IHNpemU7CiAgICAgICAgY2hhciAqcmJBcnJheVtdOwp9OwoKc3RydWN0IFJpbmdCdWZmZXIgKnJiX2NyZWF0ZShzaXplX3QgbmVsZW1zKXsKICAgICAgICBzdHJ1Y3QgUmluZ0J1ZmZlciAqbmV3OwogICAgICAgIG5ldyA9IG1hbGxvYyhzaXplb2YgKm5ldyArIG5lbGVtcyAqIHNpemVvZiAqbmV3LT5yYkFycmF5KTsKICAgICAgICBpZiAobmV3KSB7CiAgICAgICAgICAgICAgICAvKiBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG5lbGVtczsgaSsrKQogICAgICAgICAgICAgICAgICAgICAgICBuZXctPnJiQXJyYXlbaV0gPSBOVUxMOyAqLwogICAgICAgICAgICAgICAgbmV3LT5oZWFkID0gbmV3LT50YWlsID0gbmV3LT5jb3VudCA9IDA7CiAgICAgICAgICAgICAgICBuZXctPnNpemUgPSBuZWxlbXM7CiAgICAgICAgfQogICAgICAgIHJldHVybiBuZXc7Cn0KCmludCBtYWluKHZvaWQpIHsKICAgICAgICBzdHJ1Y3QgUmluZ0J1ZmZlciAqcmIgPSByYl9jcmVhdGUoMTAwKTsKICAgICAgICBwcmludGYoImhlYWQ6ICVkXG50YWlsOiAlZFxuY291bnQ6ICVkXG4iLAogICAgICAgICAgICAgICAgKGludClyYi0+aGVhZCwgKGludClyYi0+dGFpbCwgKGludClyYi0+Y291bnQpOwogICAgICAgIGZyZWUocmIpOwogICAgICAgIHJldHVybiAwOwp9Cg==
-
upload with new input
-
result: Success time: 0s memory: 1852 kB returned value: 0
head: 0 tail: 0 count: 0


