Показать сообщение отдельно
Старый 04.05.2012, 17:01   #9
HolyDel
 
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений
(для 2,707 пользователей)
Ответ: Передача массива в функцию по ссылке

#include <iostream>
#include <vector>
using namespace std;

struct D3DXVECTOR3
{
	float x,y,z;
};


void _myfunc(D3DXVECTOR3 *arr,int x, int y)
{
   for(int i=0;i<x;i++)
   {
        for(int j=0;j<y;j++)
        {
            arr[i*y + j].x=i;
            arr[i*y + j].y=j;
            arr[i*y + j].z=i+j;
        }
   }
}

template<class T, int x, int y>
void myfunc(T (&arr)[x][y])
{
	_myfunc(arr[0],x,y);
}

int main()
{
	const int x = 10;
	const int y = 20;

	D3DXVECTOR3 arr[x][y];

	myfunc(arr);

   for(int i=0;i<x;i++)
   {
        for(int j=0;j<y;j++)
        {
            std::cout<<arr[i][j].x<<" "<<arr[i][j].y<<" "<<arr[i][j].z<<std::endl;
        }
		 std::cout<<std::endl;
   }

   std::cin.get();
}
(Offline)
 
Ответить с цитированием