如何打印内存和缓冲区的长度?

时间:2018-12-26 18:56:14

标签: c memory stack size buffer

我需要打印内存和缓冲区的大小吗?

他们是另一种方式吗?

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

我刚刚编辑了我的问题,其中“输入”实际上是“缓冲区”

1 个答案:

答案 0 :(得分:0)

您可以使用来自redis的自定义malloc方法

#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));
}