获得malloced区域的大小

时间:2014-02-11 13:44:20

标签: c

有没有办法从指针知道调用malloc()的大小?

例如,如果我有:

typedef struct entry entry_t;

struct entry
{
  int val;
};

entry_t *entryt_p = (entry_t *)malloc(10 * sizeof(entry_t));

我是否可以从entryt_p中提取调用malloc()大小的方法?

2 个答案:

答案 0 :(得分:3)

该语言没有指定可移植方式。某些版本的malloc可能会提供扩展功能。一般来说,由你的程序来跟踪。

答案 1 :(得分:1)

用户无法访问此信息。 Malloc返回指向已分配内存地址的指针。 由程序来跟踪分配的数量。

如果你真的不想跟踪大小,请考虑在最后一个位置使用sentinel value

相关问题