我是一名计算机科学专业的学生,其中一个测试问题要求使用 malloc 在 C 中实现 realloc。我的老师说正确的答案是在复制前一个数组的元素之前获取前一个数组的 sizeof 并与新大小进行比较。
我问他 sizeof 函数是否真的可以做到这一点,他说可以,但我在任何地方都找不到它。抱歉,如果这是与另一个问题重复或相似的问题,但我需要确定。
你的老师错了。
sizeof
仅在编译时评估,因此它不适用于运行时分配的动态数组。
您需要将数组的长度存储在数组本身分配的内存块中,以便以后能够查询它。