【发布时间】:2009-04-06 04:58:37
【问题描述】:
我正在维护一段 C 代码,其中经常填充 char 数组,方法是将它们传递给函数并将结果用作写入输出的字符串。但是,在函数处理数组后,没有对数组进行检查,我想知道最好的方法是什么?
一种方法是在数组中的最后一个元素返回后将其设置为 \0,但我怀疑可能有更好的元素。
void Unpack(char* inbuf, char* outbuf);
int main(int argc, char* argv[])
{
char* inData = "abc";
char outData[4];
char result[14];
Unpack(inData, outData);
outData[3] = '\0'; // Insert this to safeguard array before using as string.
_snprintf(result, sizeof(result), "blah %0s blah", outData);
printf(result);
return 0;
}
void Unpack(char* inbuf, char* outbuf) {
for(int index=0; index<3; index++) {
*outbuf++ = *inbuf++;
}
}
【问题讨论】: