回 帖 发 新 帖 刷新版面

主题:[讨论]动态数组定义的麻烦!

请各位大仙帮忙分析这个问题

  //定义动态数组
  typedef double* DoublePtr;
  DoublePtr d;
  d=new double[10];  //--------(173)
  ---
  ---
  ---
  delete [] d;

错误
(173): error C2501: 'd' : missing storage-class or type specifiers
(173) : error C2040: 'd' : 'int' differs in levels of indirection from 'double *'
(173) : error C2440: 'initializing' : cannot convert from 'double *' to 'int'
        This conversion requires a reinterpret_cast, a C-style cast or function-style cast

回复列表 (共4个回复)

沙发

typedef double DoublePtr;
  DoublePtr * d;
  d = new DoublePtr[10];  //--------(173)
  ---
  ---
  ---
  delete []d;

板凳

变量的类型和 new 的类型要一致

3 楼

int main()
{
typedef double* DoublePtr;
  DoublePtr d;
  d=new double[10];  //--------(173)

  delete [] d;
}
在 cfree 下运行通过

4 楼

肯定是没加入到main()函数中,就有这些错误提示,代码本身没有错误:
int main()
{
    typedef double* DoublePtr;
    DoublePtr d;
    d=new double[10];
    delete [] d;
}

我来回复

您尚未登录,请登录后再回复。点此登录或注册