|
seamusic 님이 쓰신 글 :
: 디비를 읽어서 포인터 이중배열에 저장하려고 하는데요
: 그게 이상해서
: 디버깅을 해보니까
:
: 이상한 값들이 들어갑니다.
: 포인터 때문인 것도 같은데...
: 어찌 해야할지 모르겠어요..도와주세요....ㅜ.ㅜ
:
: szDataList[i][0] = ADOQuery1->FieldByName(szColumnName[0])->AsString.c_str() ;
: szDataList[i][1] = ADOQuery1->FieldByName(szColumnName[1])->AsString.c_str() ;
: szDataList[i][2] = ADOQuery1->FieldByName(szColumnName[2])->AsString.c_str() ;
:
: 이렇게 쓰거든요...
: char *szDataList[200][50] 으로 선언 되어있구요..
:
: 안되면.....
: 우웅~~ ㅜ.ㅜ
: c_str()은 문자열 포인터를 반환하잖아요..
: 문자열 데이타를 할당해주는 방법이라도....
strcpy(szDataList[i], ADOQuery1->FieldByName(szColumnName[0])->AsString.c_str());
또는 strncpy(szDataList[i], ADOQuery1->FieldByName(szColumnName[0])->AsString.c_str(), 50);
하세요 ..
이상한 값은 아마도 ADOQuery1->FieldByName(szColumnName[0])->AsString의 주소값(포인터)일듯
|