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 catでもあります。まあ、static_cast <>を使っているので、まあまあです。私はコードが醜いと言いましたか? – sbi