例如在这段代码中:
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/