我在我的程序中分配正确大小的内存时遇到问题。我执行以下操作:
void * ptr = sbrk(sizeof(void *)+sizeof(unsigned int));
当我这样做时,我认为它向堆中添加了太多内存,因为它以 void* 而不是字节为单位分配它。我如何告诉它我希望 sizeof( whatever ) 表示任何字节而不是任何其他单位?
编辑:
我见过其他人将事物转换为字符,以便编译器以字节为单位获取大小。如果 sizeof(unsigned int) 是 4 字节,但我使用的类型是 void *,编译器会破坏 void * 大小的 4 倍而不是 4 字节吗?