我有一个字符缓冲区 - char buff[1000]
,并试图用来strncpy
读取前 16 个字符并将其存储为列表的一部分,然后读取接下来的 24 个字符并将其存储为列表的另一部分。但是,当我调用strncpy
两次时,第二次strncpy
返回缓冲区的开头,而不是我在第一次之后停止的地方strncpy
。
char buff[1000];
14 struct List list;
15 initList(&list);
16
17 struct Node *node = NULL;
18 while (!feof(myf) == 1){
19 fread(buff, 40, 1, myf);
20 struct MdbRec *newRec;
21 newRec = (struct MdbRec *)malloc(sizeof(struct MdbRec));
22 if (newRec == NULL){
23 exit(1);
24 }
25 strncpy(newRec->name, buff, 16);
26 strncpy(newRec->msg, buff, 24);
27
28 node = addAfter(&list, node, newRec);
我该如何解决?谢谢!!!