c++ - malloc 前面的 (double **) 是什么意思?

标签 c++

例如在这段代码中:

double **Data, *DataT;
Data = (double **)malloc(3*sizeof(double *)+3*12*sizeof(double));

我刚读到 malloc 从堆中分配内存。但是我找不到 malloc 前面的 (double **) 是什么意思。 在这之后还有一行代码,我也看到过。

for (i = 0, DataT = (double *)(Data+3); i < 3; i++, DataT += 12)

这里Data+3前面有个(double *)

你能给我解释一下那是做什么的吗? 谢谢

最佳答案

malloc() 返回类型 void *,而您的指针是 double *double ** 类型>。 malloc 之前的运算符 - 看起来像 (type) - 是类型转换运算符,需要将 malloc 的返回值转换为您正在使用的指针的类型。

关于c++ - malloc 前面的 (double **) 是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8640633/

相关文章:

c++ - 每个类(class)都有不同的 boost 日志接收器

c++ - 如何从正在评估的一行代码中找到字符的特定位置

c++ - 我如何链接到 Lua 中的回调函数,以便在重新加载脚本时更新回调?

c++ - C++ 和共享库中的代码执行点

C++模板排序

c++ - 测试返回三角形类型的函数

c++ - 在 STL 中使用引用计数的数据结构有哪些行为异常?

c++ - 在 C++ 中,在对象内分配多个数据时,堆栈分配是否更有效? A_Heap 类在下面的程序中效率会降低吗?

c++ - 如何克服 WaitForMultipleObjects 的 MAXIMUM_WAIT_OBJECTS 限制?

c++ - STL映射,使用类的迭代器和指针