|
괜히 봤다가 한동한 삽질했네요.
arr_size = sizeof(oper)/sizeof(oper[0]);
=> arr_size = sizeof(&oper)/sizeof(oper[0]); 의 의미네요.
즉 oper의 size를 묻는 것은 , char pointer의 size를 묻는 거라
string이 아무리 길어도 무조건 4가 리턴되네요.
개선한다면 ..
arr_size = strlen(oper)/sizeof(oper[0]);
이렇게 하면 원하는 결과를 얻을 수는 있네요.
개구장이 님이 쓰신 글 :
: TStringList의 값을 배열(int타입)에 복사가능한가요?
:
: 그리고 또 하나 궁금한게 있습니다.
: AnsiString Temp2;
: int arr_temp;
: char* oper;
: arr_temp = Temp2.Length();
: oper = new char[arr_temp];
: strcpy(oper,Temp2.c_str());
: arr_size = sizeof(oper)/sizeof(oper[0]);
:
: 프로그램의 일부분이 위와 같고, arr_temp가 7이라면, arr_size는 7이 되어야
: 하는데 4가 나옵니다.
: arr_size = sizeof(oper)/sizeof(oper[0]);
: 이 제일 의심스럽습니다.
:
: oper는 제가 EditBox에 찍어보았는데 제대로 나옵니다.
|