在CIN中如何初始化数组?如下代码所示:
/* CIN source file */
#include "extcode.h"
/* Typedefs */
typedef struct {
int32 dimSizes[2];
LStrHandle NumTextText[1];
} TD1;
typedef TD1 **TD1Hdl;
typedef struct {
int32 dimSize;
LStrHandle string[1];
} TD2;
typedef TD2 **TD2Hdl;
MgErr CINRun(TD1Hdl StatusControlsLabels, LStrHandle strout);
MgErr CINRun(TD1Hdl StatusControlsLabels, LStrHandle strout)
{
/* Insert code here */
int i, j, size, count;
int strlen[200];
TD2Hdl tdstr;
MgErr err;
count = 0;
size = 0;
strlen[0] = 0;
if(!(tdstr = (TD2 **) DSNewHandle(sizeof(TD2) * ((*StatusControlsLabels) -> dimSizes [1]))))
{
err = mFullErr;
goto out;
}
// (*tdstr) -> dimSize = (*StatusControlsLabels) -> dimSizes[1];
for(i = 0; i < (*StatusControlsLabels) -> dimSizes[1]; i++)
{
MoveBlock(LHStrBuf((*StatusControlsLabels) ->NumTextText[i]), LHStrBuf((*tdstr) ->string[i]),
LHStrLen((*StatusControlsLabels) -> NumTextText[i]));
size += LHStrLen((*StatusControlsLabels) -> NumTextText[i]);
strlen[i + 1] = size;
}
err = NumericArrayResize(uB, 1L, (UHandle *)&strout, size);
if(!err)
{
for(j = 0; j < (*StatusControlsLabels) -> dimSizes[1]; j++)
MoveBlock(LHStrBuf((*StatusControlsLabels) -> NumTextText[j]), LStrBuf(*strout) + strlen[i],
LHStrLen((*StatusControlsLabels) -> NumTextText[j]));
LStrLen(*strout) = size;
}
/*
for(i = 0; i < (*StatusControlsLabels) -> dimSizes[0]; i++)
for(j = 0; j < (*StatusControlsLabels) -> dimSizes[1]; j++)
{
size += LHStrLen((*StatusControlsLabels) -> NumTextText[count]);
strlen[count + 1] = size;
count++;
}
count = 0;
err = NumericArrayResize(uB, 1L, (UHandle *)&strout, size);
if(!err)
{
for(i = 0; i < (*StatusControlsLabels) -> dimSizes[0]; i++)
for(j = 0; j < (*StatusControlsLabels) -> dimSizes[1]; j++)
{
MoveBlock(LHStrBuf((*StatusControlsLabels) -> NumTextText[count]), LStrBuf(*strout) + strlen[count],
LHStrLen((*StatusControlsLabels) -> NumTextText[count]));
count++;
}
LStrLen(*strout) = size;
}
*/
out:
return err;
}
上面的tdstr我该如何初始化并分配内存大小?谢谢!