有没有办法从指针知道调用malloc()
的大小?
例如,如果我有:
typedef struct entry entry_t;
struct entry
{
int val;
};
entry_t *entryt_p = (entry_t *)malloc(10 * sizeof(entry_t));
我是否可以从entryt_p
中提取调用malloc()
大小的方法?
答案 0 :(得分:3)
该语言没有指定可移植方式。某些版本的malloc
可能会提供扩展功能。一般来说,由你的程序来跟踪。
答案 1 :(得分:1)
用户无法访问此信息。 Malloc返回指向已分配内存地址的指针。 由程序来跟踪分配的数量。
如果你真的不想跟踪大小,请考虑在最后一个位置使用sentinel value。