我在网上看到了使用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
第一种方法是否有效,如果是,建议使用吗?
感谢您的帮助
答案 0 :(得分:1)
有效吗?是(原则上)。 df['LS'] = df.['Long'].map(lambda y:df.Currency if y>0 else df.StartDate)
运算符可以应用于某个类型(如第二个示例中所示),或者同样可以应用于任何表达式(返回该表达式返回的类型的大小)。所以它是有效的。我说“原则上”是因为你将错误的表达式传递给错误的sizeof
调用。
是否推荐使用?嗯,我会因为您已经说过的原因推荐它。
答案 1 :(得分:0)
我更喜欢第一种方法。它符合DRY原则,允许您轻松查看分配的内存大小正确。