Как вывести длину памяти и буфера? - PullRequest
0 голосов
/ 26 декабря 2018

Мне нужно напечатать размер памяти и буфера?

это их другой способ?

size_t len;
len = strlen(input);
printf("******************len is : %d\n", len)

Я только что отредактировал мой вопрос, где 'input' на самом деле 'buffer'

1 Ответ

0 голосов
/ 27 декабря 2018

Вы можете использовать пользовательский метод malloc, который происходит от redis

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

void* zmalloc(size_t size) {
    void* ptr = malloc(size + sizeof(size_t));
    *((size_t*)ptr) = size;
    return ptr + sizeof(size_t);
}

size_t zmalloc_size(void* ptr) {
    void* real_ptr = ptr - sizeof(size_t);
    return *((size_t*)real_ptr);
}

int main() {
    void* ptr = zmalloc(100);
    printf("%zu", zmalloc_size(ptr));
}
...