今天我发现这是一家公司给我的示例文件:
void mySgemm( int m, int n, int k, float alpha, float beta, float a[m][n], float b[n][k], float c[m][k], int accelerate )
跟:
a_cpu = malloc(..);
b_cpu = malloc(..);
c_cpu = malloc(..);
mySgemm(m, n, k, a, b, a_cpu, b_cpu, c_cpu, true);
我无法编译自己的类似示例,坦率地说,我从未见过有人使用动态数组并使用函数参数本身对其进行整形。
这是合法的电话吗?
令我难以置信的是,mySgemm
函数在a
函数中访问b
,c
,{{1}}为双数组,因此数组基本上正在重新形成!?< / p>
答案 0 :(得分:1)
不,它无效c ++。
我想正式的参数声明会在c99中作为可变数组传递,但我不确定那些参数的实际参数会被接受