各位高手进来看一下,小弟感激万分
首先我定义了一个结构如下:
typedef struct mystruct {
int num;
CString str;
} ;
然后我实例化一个指针
struct mystruct m_mystruct1;
再然后我通过一个函数填入数据,循环多少次是不定的,假定6次
void FillArray()
{
for (int i = 0;i < 6;i++)
{
m_mystruct1[i].num = i;
m_mystruct1[i].CString = "ForTest ";
}
}
最后我将它写入一个文件
FILE *outfile;
if ((outfile=fopen(m_strFile, "wb ")) == NULL)
{
return;
}
if (fwrite((void*)m_mystruct1, sizeof(struct mystruct), array_max_index + 1, outfile) < array_max_index)
{
fclose(outfile);
return 1;
}
以上这些是没有问题的,我的问题是如果我不是把它写入文件,我希望用一个BYTE的指针变和一个short的值将m_mystruct1的内容和长度保存进来,应该怎么办呢,谢谢大家了,非常着急!
[解决办法]
如果你确信其长度在 [0, 255] 范围内, 那么一个 BYTE 就可以表示其长度了. 每增加一个结构体就让这个 BYTE 变量增 1 . BYTE 指针就没有必要了, 因为指针是 32 位的, 那还不如用 int . 用 short 好象不能表示这个结构体的内容吧 .