gpt4 book ai didi

c - 在 C 中,为什么我们需要将 char* 转换为 void?

转载 作者:太空宇宙 更新时间:2023-11-04 01:03:37 25 4
gpt4 key购买 nike

我读了一个单元测试,它检查无效的 free 或 double-free:

int main() {
char *a = (char*) my_malloc(200);
char *b = (char*) my_malloc(50);
char *c = (char*) my_malloc(200);
char *p = (char*) my_malloc(3000);

(void) a, (void) c;

memcpy(p, b - 200, 450);
my_free(p + 200);
printstatistics();
}

为什么我们需要将 char* 转换为 void,当我们进行转换时内存中会发生什么?

最佳答案

(void) a, (void) c;

是消除编译器关于未使用变量的警告的常用方法。由于这两个变量仅被初始化,以后不会使用,因此大多数编译器会发出警告。由于这显然是某种内存分配测试,它们并不是有意使用的,因此有人决定消除警告。

关于c - 在 C 中,为什么我们需要将 char* 转换为 void?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29569385/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com