我在struct中创建了一个字符串数组,它是共享的。
结构如下:
struct data{
int uids[5];
int sockids[5];
int stat[30];
char msgs[30][1024];
};
这是写作部分,我可以看到printf上的字符串。
for (int i = 0; i < bufSize; i++) {
if ((*d).stat[i] == -1) {
(*d).stat[i] = sockid;
memset(&((*d).msgs[i][0]), 0, strlen(d->msgs[i]));
strncpy((*d).msgs[i], buf,1023);
printf("\nwriting for me %d %s\n",sockid,d->msgs[i]);
return 1;
}
}
从同一地区阅读:
for(int i=0;i<bufSize;i++){
if((*d).stat[i]==mysocket){
(*d).stat[i]=-1;
printf(" message for me %d %d %s\n",mysocket,d->stat[i],d->msgs[i]);
fflush(stdout);
send(mysocket,(*d).msgs[i],strlen((*d).msgs[i]),0);
memset(&((*d).msgs[i][0]), 0, strlen(d->msgs[i]));
}
}
在阅读部分我有时会空白......
示例输出..:
写给我6 36753:发送一些信息
给我留言6 -1
有时消息会出现,有时候会出现空白。 任何人都可以指出错误是什么。