抛出空指针的原因是什么? 我从零开始学习C++,因此我对C++没有一个专家的理解,你不能把空指针投给任何东西,我理解C.背后的原因。然而,我知道在C语言中,你可以。可能的原因是什么?这似乎是类型安全性中的一个巨大漏洞,这(对我来说)似乎是一件坏事。

抛出空指针的原因是什么? 我从零开始学习C++,因此我对C++没有一个专家的理解,你不能把空指针投给任何东西,我理解C.背后的原因。然而,我知道在C语言中,你可以。可能的原因是什么?这似乎是类型安全性中的一个巨大漏洞,这(对我来说)似乎是一件坏事。,c,C,一个原因:如果使用排序对结构数组进行排序,并且有两个结构的比较函数,您需要将void指针强制转换为指向结构的指针,才能访问结构的成员。您可以将void*强制转换为两种语言中的另一个指针。也许你的意思是含蓄的 在C语言中,不必对其进行明确说明是非常方便的。在C++中,我们有模板,所以编写通用代码不需要空白> /Cube > Studio和WaWNOT。在C语言中,没有选择。一个通用容器必须保存对象的void*,重复说mydata*d=node要容易得多则是mydata*d=(mydata*)节点

一个原因:如果使用
排序
对结构数组进行排序,并且有两个结构的比较函数,您需要将void指针强制转换为指向结构的指针,才能访问结构的成员。

您可以将
void*
强制转换为两种语言中的另一个指针。也许你的意思是含蓄的

在C语言中,不必对其进行明确说明是非常方便的。在C++中,我们有模板,所以编写通用代码不需要<代码>空白> /Cube > Studio和WaWNOT。在C语言中,没有选择。一个通用容器必须保存对象的
void*
,重复说
mydata*d=node要容易得多则是
mydata*d=(mydata*)节点

这和你说的差不多。在C型安全中,一般没有像C++那样受到重视,尤其是当它被提交到<代码> Value*/COD>时,因为它被假定为一个简单的泛型指针。C++中没有必要这样做,所以最好在处理它时明确说明。 在C中[casting a
void*
指针]的可能原因是什么?这不是打字安全上的一个大漏洞吗

这是支持多态性的唯一可能的方法,也称为泛型编程。没有其他方法可以生成,例如,通用哈希表。C中的多态性非常不安全,但它是唯一的多态性

<>高兴的是C++具有参数多态性(模板的许多功能之一)。