安全C#中数组指针的替代方案? 我试图把C++中的一部分翻译成C,而我不能这样做,因为在查找和访问数组元素时丢失了一大堆的性能。我使用的是3d锯齿阵列,因为这对我当时来说是最直观的,但我非常乐意接受其他建议。所以我的问题是,有没有一种方法可以像数组指针那样
安全C#中数组指针的替代方案? 我试图把C++中的一部分翻译成C,而我不能这样做,因为在查找和访问数组元素时丢失了一大堆的性能。我使用的是3d锯齿阵列,因为这对我当时来说是最直观的,但我非常乐意接受其他建议。所以我的问题是,有没有一种方法可以像数组指针那样,以同样的方式或类似的方式访问某种类型的集合?这里有一点C++我正在转换:安全C#中数组指针的替代方案? 我试图把C++中的一部分翻译成C,而我不能这样做,因为在查找和访问数组元素时丢失了一大堆的性能。我使用的是3d锯齿阵列,因为这对我当时来说是最直观的,但我非常乐意接受其他建议。所以我的问题是,有没有一种方法可以像数组指针那样,c#,c++,arrays,C#,C++,Arrays,安全C#中数组指针的替代方案? 我试图把C++中的一部分翻译成C,而我不能这样做,因为在查找和访问数组元素时丢失了一大堆的性能。我使用的是3d锯齿阵列,因为这对我当时来说是最直观的,但我非常乐意接受其他建议。所以我的问题是,有没有一种方法可以像数组指针那样,以同样的方式或类似的方式访问某种类型的集合?这里有一点C++我正在转换: void Upsample(float* from, float* to, int n, int stride) { float* p, pCoeffs[4]
void Upsample(float* from, float* to, int n, int stride)
{
float* p, pCoeffs[4] = { 0.25, 0.75, 0.75, 0.25 };
p = &pCoeffs[2];
for (int i = 0; i < n; i++)
{
to[i * stride] = 0;
for (int k = i / 2; k <= i / 2 + 1; k++)
to[i * stride] += p[i - 2 * k] * from[Mod(k, n / 2) * stride];
}
}
////
for (iy=0; iy<n; iy++) for (iz=0; iz<n; iz++) {
Upsample( &noise[i], &temp1[i], n, 1 );
}
void上采样(浮点*从,浮点*到,整数n,整数步长)
{
float*p,pCoeffs[4]={0.25,0.75,0.75,0.25};
p=&pCoeffs[2];
对于(int i=0;i for(int k=i/2;C#中的k数组通过引用传入函数。一切都应该正常。有趣的循环条件(int k=i/2;k你能用C语言提供你的代码吗?那么有办法检测翻译代码中的问题吗?什么是Mod
?为什么不%
?如果Mod
是一个函数,那么很可能这就是你的速度变慢的地方。C语言中的数组通过引用传递函数。一切都应该正常。有趣的循环条件(int k=i/2;k你能用C语言提供你的代码吗?#因此有一种方法可以检测翻译代码中的问题吗?什么是Mod
?为什么不%
?如果Mod
是一个函数,那么很可能这就是你减速的地方。