포인터를 공부했을때는 "많아도 이차원 포인터 이상을 쓸 일이 없겠지" 라는 생각을 한적이 있다. 얼마전까지도 그렇게 생각했었고 복잡한 포인터는 쓸 일이 없을꺼야 라고 얼마전까지 생각했었다.
하지만 어느 프로젝트를 진행중에 "이차원 포인터 배열의 포인터"를 한 함수에서 반환을 하고, 다른 함수에서 인자로 받는 코드를 작성해야 하는 경우가 발생했었다.
(이런식의 코딩은 해본적이 없어서 금방 코드가 작성되지 않았던..;;)
하지만 함수를 작성하고나서 생각한것은.. "이건 객체지향이 아니자나!!" _no
" DataType*(*)[10][10] " 이런식의 코딩이 가능하다는것을 알아냈다는것에 의의를 두자. (라고 자위하고 있다)
하지만 어느 프로젝트를 진행중에 "이차원 포인터 배열의 포인터"를 한 함수에서 반환을 하고, 다른 함수에서 인자로 받는 코드를 작성해야 하는 경우가 발생했었다.
(이런식의 코딩은 해본적이 없어서 금방 코드가 작성되지 않았던..;;)
하지만 함수를 작성하고나서 생각한것은.. "이건 객체지향이 아니자나!!" _no
class CReceive
{
public:
void ReceiveFunction(void* in)
{
m_data = (DataType* (*)[10][10])in;
}
private:
DataType* (*m_data)[10][10];
};
class CSend
{
public:
void* SendFunction()
{
return (void*)m_data;
}
private:
DataType* m_data[10][10];
};
int main()
{
CSend s;
CReceive r;
r.ReceiveFunction(s.SendFunction());
return 0;
}
{
public:
void ReceiveFunction(void* in)
{
m_data = (DataType* (*)[10][10])in;
}
private:
DataType* (*m_data)[10][10];
};
class CSend
{
public:
void* SendFunction()
{
return (void*)m_data;
}
private:
DataType* m_data[10][10];
};
int main()
{
CSend s;
CReceive r;
r.ReceiveFunction(s.SendFunction());
return 0;
}
" DataType*(*)[10][10] " 이런식의 코딩이 가능하다는것을 알아냈다는것에 의의를 두자. (라고 자위하고 있다)
