在 malloc() 返回的 C 地址中隐式类型转换,而在 C++ 中我需要显式类型转换。但是我使用的是一个整数指针,它会根据指针算法指向下一个地址,那么为什么我需要类型转换内存地址?
我实际上使用的是“new”关键字,但我需要澄清一下我的想法。
最佳答案
But I'm using an integer pointer which will point out to next address according to the pointer arithmetic
是的,它会,但它在这里不相关。
malloc
返回一个 void *
。
在 C 中,指向 void
的指针可以隐式转换为指向任何其他类型的指针。
在 C++ 中,没有这种隐式转换(大概是为了使语言使用起来更安全一些)。
就这么简单。
关于c++ - 为什么动态分配的内存需要类型转换?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53172732/