sizeof
关键字不能直接用于动态分配的内存。sizeof
是一个编译时运算符,它在编译阶段就确定了变量或类型所占用的内存大小。而动态分配的内存是在运行时通过malloc
、calloc
或realloc
等函数分配的,其大小在分配时才能确定。
如果你想在运行时获取动态分配内存的大小,可以使用malloc_size
函数(在某些库中可能是_msize
)。这个函数返回动态分配内存块的大小(以字节为单位),但请注意,这个函数并不是标准C库的一部分,而是某些编译器或库提供的扩展。在标准C库中,你可以使用sizeof
运算符来获取静态分配内存的大小,但对于动态分配的内存,你需要使用其他方法来确定其大小。