目前你要求64位机器上的指针大小为8字节.由于这是一个malloc而不是真正的数组,因此无法检索通过分配的缓冲区的大小c.
如果c被宣布为
char c[30];
Run Code Online (Sandbox Code Playgroud)
您可以使用确定大小
size_t size = sizeof(c)/sizeof(c[0])
Run Code Online (Sandbox Code Playgroud)
但说实话,如果我必须这样做,#define即使在编译时会删除大小计算,我也只是数组大小.在我看来,它使代码更清晰.