sqrt函数导致';void*';不是指向对象类型的指针;错误 我在C++中工作,做一个非常简单的函数,它计算用户输入的给定数字的标准偏差。但是,当我尝试将sqrt函数与我的变量mean一起使用时,我在尝试编译程序时遇到了一个错误:

sqrt函数导致';void*';不是指向对象类型的指针;错误 我在C++中工作,做一个非常简单的函数,它计算用户输入的给定数字的标准偏差。但是,当我尝试将sqrt函数与我的变量mean一起使用时,我在尝试编译程序时遇到了一个错误:,c++,C++,“void*”不是指向对象类型的指针 下面是我的代码,以及错误消息的图片 #包括 #包括 #include“stddev.h”//这只是我的程序附带的一个单独的头文件 使用名称空间std; 无效统计数据(浮点*数据,整数n){ 浮动平均值=0; int i; 对于(i=0;i)。 它应该仍然有效--意味着完全等同于包含和--因此您看到的是一个编译器/库错误。但可能这是一些供应商不太感兴趣的问题,因为它已被弃用 在我更改了#include“stddev.h”之后,使用#include而不是#inc

“void*”不是指向对象类型的指针

下面是我的代码,以及错误消息的图片

#包括
#包括
#include“stddev.h”//这只是我的程序附带的一个单独的头文件
使用名称空间std;
无效统计数据(浮点*数据,整数n){
浮动平均值=0;
int i;
对于(i=0;i <代码> >(或代码< >代码>)。
它应该仍然有效--
意味着完全等同于包含
--因此您看到的是一个编译器/库错误。但可能这是一些供应商不太感兴趣的问题,因为它已被弃用


在我更改了
#include“stddev.h”之后,使用
#include
而不是
#include

应该会更顺利<代码> >代码> >包含< <代码> >,程序编译时无错。但是在C++中使用<代码> <代码>可能是有问题的。< C++中的代码> <代码>完全不必要。只需查阅<代码> <代码>和“代码> STD::Sqrt< /Cl>。”@ DEIDI:大概是代码> >代码>包含在<代码>“STDDEV.H”中。
,OP没有向我们展示。谜题的一部分:tgmath.h将
sqrt
实现为一个宏。这意味着这一行被扩展为更复杂的内容。您可能看到的是使用C99功能(tgmath)的产物但是,C++中的特殊错误出现的确切原因不容易查看,而不必查看计算机的特定标题。<代码> <代码>是一个C宏,它定义了宏,以解决C的功能过载不足。它的实现可能使用一些可能与C++无关的奇怪的东西。当然,只需使用
和重载的
std::sqrt
函数即可。