aCCB->C16_ArgInfo(aCCB->InstHdl,2,&tType2,&tOpt2,&tLen2,NULL,&tCount2);
if (tType2 == _TypeAlpha &&
tOpt2 == (_ArgOptVAR | _ArgOptARRAY))
{
/* read array */
tBuf = static_cast<char*>(malloc(tLen2));
aCCB->C16_ArgRead(aCCB->InstHdl,2,0,tBuf);
tTab = static_cast<char**>(malloc(sizeof(char*) * tCount2));
tSize = tLen2/tCount2;
*tTab = tBuf;
/* define sort table */
for (tLoop = 1; tLoop < tCount2; ++tLoop)
tTab[tLoop] = tTab[tLoop-1] + tSize;
내가 알기로는 aCCB-> InstHdl에 문자열 배열 (char **)로 변환되는 원시 데이터가 포함되어 있습니다.아무도이 코드를 설명 할 수 있습니까?
내가 이해할 수없는 것은 마지막 루프입니다. 그것은 무엇을합니까? 그것은 무엇을위한 것인가? C++ 지식이 전혀 존재하지 않는다는 것을 인정해야합니다 ...
'C16 _...'함수가 무엇을하는지 모른 채 실제로 말하기는 어렵습니다. – casablanca
이것은 매우 구체적인 질문입니다. 그래서 'tTab'에 많은 가치가 있다고 생각할 수는 있지만, 그 숫자가 실제로 의미하는 바를 말할 수는 없습니다. 'tTab [tLoop] = tTab [tLoop-1] + tSize;'tTab'는'malloc' 할당을했기 때문에'tTab [0]'에 접근하면 예기치 않은 결과가 나올 수 있습니다. 메모리가 초기화되지 않았으므로 정의되지 않은 동작입니다. – birryree
Urgh. 고양이가 다시 키보드에있는 것처럼 보입니다. 그리고 그것은'malloc()'을 사용하기 때문에 C 고양이이기도합니다. 왜냐하면'static_cast <> '도 사용하고 있기 때문입니다. 그리고 그 코드가 추악하다는 것을 언급 했습니까? – sbi