theMessageMaxLength
即使长度大于4,也会给我一个值4
。为什么发生这种情况,我该如何解决?这是size_t
型的,我没有它宣称的任何地方,而这仅仅是传递在这样一个值:size_t的长度不正确?
place_value(int task, struct PDB *llist, char *theMessage, size_t theMessageMaxLength)
上述方法被调用如下:
place_value(task, llist, theMessage, sizeof(theMessage));
我假设这是长度设置为4的位置,但是,如果我的消息较大,是不是应该设置为更大的值?我将如何增加尺寸,这不仅仅是4 ...?
,然后在函数内使用这样它被传递到:
strncpy(llist->data1, theMessage, theMessageMaxLength);
llist->data1[theMessageMaxLength] = '\0';
谢谢:) ...知道了! – BigBug 2011-12-16 04:01:33