프로젝트 시작~

멤버십에서 프로젝트를 맞게 되었다.

픽스렌이라는 프로그램과 거의 비슷한데 구글,네이버,유투브 등에 있는 동영상 또는

컴퓨터 내부에 있는 이미지 또는 동영상 들을 찾아서 파노라마 형식으로 보여주는 프로그램이다.

3인 1조 프로그램이고 WPF를 써서 UI를 꾸며야 하는데 팀에서 맞은 부분이 웹에 있는 자료를 긁어오는

것이다. 이미지 검색 API를 지원하여 주는 경우도 있지만 그렇지 않은 경우도 있고

신문자료 중에서 이미지만 긁어서 올예정인데 이것또한 API를 지원해 주지 않아서

HTML코드를 받아서 파싱해야 하는데 어떻게 해야 할지 막막하다.

그리고 같이하는 조원이 졸업을 앞두고 있어서 빨리 프로젝트를 끝내야 하는 입장이라서 이번달 부터

한다고 해서 시간도 조금 쪼달리지 않을까 라는 걱정도 하지만 같이하는 팀원들이 다 나보다

경험적으로 뛰어나기 때문에 위안이 된다 ㅎ

이번학기 가장 빡센 3학년 2학기고 또 제대로 된 프로젝트를 처음으로 하는것이어서

조금 바쁠듯 하지만 새로운 걸 배우고 해본다고 생각하니 조금 설렌다.!!! 열심히 해보자 ~
신고
Comment 3 Trackback 0
  1. danguria 2008.09.06 02:31 신고 address edit & delete reply

    열심히 하삼!!ㅋ

  2. hannam 2008.09.17 23:51 신고 address edit & delete reply

    좋은 결실 맺으시길 ^^

  3. jual jaket keren bandung 2012.12.07 16:01 신고 address edit & delete reply

    난 당신이 게시물에 대한 도입 한 모든 아이디어를 생각 않습니다. 그들은 정말 설득력하고 확실히 작동합니다. 그럼에도 불구하고, 게시물 초보자를위한 매우 빠른입니다. 당신이 그들에게 이후의 시간에서 조금 연장 할 수 있을까요? 게시물에 대한 감사합니다.

Top

내일 개학이네 ㅠㅠ

내일 개학인데 방학동안 뭐한건지 잘 모르겠다 ...

계획을 제대로 안잡고 시간을 허비 한것 때문에 조금허무하다 ㅠㅠ

그래도 방학동안 나름 한개 있다면 MFC 조금 판정도?

이제 과제도 해야하고 학교도 다녀야 하는데 왠지 모르게 둘 다 잘할 수 있을것 같은 느낌? ㅋ

과제는 일단 어플리케이션 조금 해보고 3D , 영상인식 , 가상현실 , 디바이스 드라이버 이쪽으로

넘어가고 싶다. 원래 이런쪽으로 관심은 많이 없었는데 주위에 보고 듣는게 느니까 이런저런

분야에 많은 관심이 가기 시작하는군 ㅎ

일단은 아직 많이 모르니까 이것저것 공부하고 많이 배워야 겠다.
신고
Comment 0 Trackback 0
Top

C언어 pointer


나름 포인터 어느정도 땟다고 생각해도 프로그래밍을 하다보면 끊임없이 마주치는 문제가

포인터 문제가 아닌가 싶다.

개학도 거의 다됬고 개학하면 과제도 해야하고 학과 공부도 해야 되서 막간을 이용해서

 다시 체계적으로 배우는 C언어 포인터 라는 책을 읽었다.

특별히 다시 정리해야 할 부분만 요약하면 다음과 같다.


사용자 삽입 이미지


++ , -- , & , * , type casting 단항자 등의 우선순위는 모두 같다.
우선순위가 같을때는 right to left 를 따른다.

int imsi[ 3] ; imsi와 같이 배열명은 배열의 시작위치 값을
값을 같을 가르킬 뿐이지 값을 저장할 수 없다.
즉 변수가 아니다.
따라서 imsi ++ , imsi --와 같은 연산은 할수 없다.

++변수 변수++ 의 의미
변수의 값을 1 증가시키거나(++) 감소시키는(--) 연산자로서 변수의 앞 또는 뒤에 붙여서 사용한다.
변수에 붙는 위치에 따라 의미가 극단적으로 달라지는데, 변수의 뒤에 오면
'문장의 실행이 끝난 다음에 변수를 증감시켜라'라는 의미이며,
(이거 너무 헷갈렸었다)
변수의 앞에 오면 '문장 실행 전에 변수를 증감시켜라'라는 의미이다.
그리고 반드시 변수에 사용되어어야 한다.

2차원 배열과 2차원 배열 포인터 변수 연결

int imsi[ 2 ][ 3 ] ;
int (*imsip)[ 3 ] ;
imsip = imsi ;
sizeof(*imsip) -> 4 * 3 = 12

포인터에 주소값을 할당하려 할 때 대상체를 무시한채 할당 할 수 없다.
int imsi[ 3 ] = { 3 , 4, 5 } ;
int (*imsip2)[ 2 ] = imsi -> 이건 에러다.

( imsi는 1차원 배열 , imsip2는 열이 2차원이고 열이 2차원인 배열을 가르킬 수 있다.)


//////////////////////////////////////////////////////////////
#include <iostream>

using std::cout ;
using std::endl ;

int main()
{   
    int imsi[ 3 ][ 2 ] = { 1, 3, 4, 5, 6, 7 } ;
    int (* imsip)[2] ;   
   
    imsip = imsi ;

     // 2개 모두가 같은 값을 가지고 있다.
    cout << imsip  << endl ;            //2차원 배열을 가르키는 주소            
    cout << *( imsip + 0 ) << endl ; //2차원 배열의 첫번째 행을 가르키는 주소

    int ** temp ;

    temp = new int *[ 3 ] ;

    for ( int i = 0 ; i < 3 ; i ++ )
    {
        temp [ i ] = new int [ 2 ] ;
    }

    // 다른 값을 가지고 있다.
    cout << temp << endl ;
    cout << temp[ 0 ] ;

    for ( int i = 0 ; i < 2 ; i ++ )
    {
        delete temp [ i ]  ;
    }

    delete  temp ;
}

//////////////////////////////////////////////////////////////


int (*imsi)[2]
int *temp[2]
imsi는 2차월 배열을 담을수 있는 2차월 배열 포인터 변수 이고 temp는 포인터 배열이다.
temp의 값은 바뀌지 않는다면 imsi는 2차원 배열의 주소를 가르킬수 있다.

int ** temp ; // 동적으로 할당해서 2차원 배열을 가질 수 있따.
int *temp1[2] ; // 포인터값을 저장 할 수 있는 1차원 배열
int ( * temp2)[ 2] ; //  2차원 배열값을 저장할 수 있는 2차월 배열 포인터


char * temp1 = "kin";
char temp2[] = "kin";

temp1은 포인터이기 때문에 메모리를 할당받고 temp2는 배열명이기 때문에
주소값을 할당 받을 수 없다. temp1[ 0 ] = 'a' 이건 에러다. 왜냐하면 "kin" 이 저장된
주소는 건드릴수 없는 상수 값이 저장되어 있기 때문이다.

imsi[ i ]  == * ( imsi + i )
i[ imsi ]  == * ( i + imsi )  // 이따구로 쓰는 사람 병신


NULL pointer는 0x00000000 ( 0번지 주소 ) 를 가르키는게 아니다. 어떠한 곳도 가르키지 않는 주소값을 나타낸다.

void pointer 어느 것이든 가리킬 수 있는 포인터이다.
- 어떠한 형 변환 없이도 void 형 포인터 변수에 대입이 가능하다.
- void pointer는 type casting을 한 후에 연산을 하여야 한다.

void point error

main()
{
    void imsi( void * temp ) ;
}

void imsi ( void temp [ ] )
{

}

//첨자 연산 역시 type cast가 필요하다. 첨자안에 숫자가 들어왔을때 몇 바이트씩 분기하여야 할지 알수가 없다.
신고
Comment 0 Trackback 0
Top

prev 1 2 3 4 next