malloc的正确语法,不指定变量类型

时间:2017-01-31 16:26:23

标签: c malloc

我在网上看到了使用Dog的以下语法:

malloc

,即指向的变量类型未指定为double ***x; x = malloc(N * sizeof(*x)); for (i = 0; i < size_y; i++) { x[i] = malloc(N * sizeof(**x)); :通常,我们声明指针如下:

malloc

根据我的理解,第一种方法允许通过替换&#34; double ***x; x = malloc(N * sizeof(double*)); for (i = 0; i < size_y; i++) { x[i] = malloc(N * sizeof(double**)); &#34;来快速更改指向的类型。 by&#34; double ***x&#34;例如。

在第二种方法中,我们必须替换所有&#34; int ***x&#34; by&#34; double&#34;进入int

第一种方法是否有效,如果是,建议使用吗?

感谢您的帮助

2 个答案:

答案 0 :(得分:1)

有效吗?是(原则上)。 df['LS'] = df.['Long'].map(lambda y:df.Currency if y>0 else df.StartDate) 运算符可以应用于某个类型(如第二个示例中所示),或者同样可以应用于任何表达式(返回该表达式返回的类型的大小)。所以它是有效的。我说“原则上”是因为你将错误的表达式传递给错误的sizeof调用。

是否推荐使用?嗯,我会因为您已经说过的原因推荐它。

答案 1 :(得分:0)

我更喜欢第一种方法。它符合DRY原则,允许您轻松查看分配的内存大小正确。