C#の配列をポインタ配列にして,Cの関数にポインタを渡す.

C#

		unsafe public static void hogecs()
		{
			short[] wave_data = new short[44100];
			for (int i = 0; i < 44100; i++)
			{
				wave_data[i] = (short)(30000 * Math.Sin(2 * Math.PI * 440 * i / 44100));
			}
			fixed (short* ptr = &wave_data[0])
			{
				dll.Class1.hoge(ptr);
			}
		}

C側

	void Class1::hoge(short* wave)
	{
		short tmp[44100];
		for(int i=0;i<44100;i++)
		{
			tmp[i]=wave[i];
		}

	}