我正在为大学开发C语言聊天,我在从客户端向服务器发送短信时遇到问题。客户端发给我一个分段错误错误11.我读到了这种错误,但我在代码中找不到我做错了什么。
char *row;
receive(s,answer);
sprintf(command,"NAME %s\0",name);
send(s,command);
printf("***** CHAT: %s *****\n\r",answer);
printf("COMMANDS:\n\r");
printf("Users list: send \"u\"\n\r");
printf("Refresh Chat:send \"r\"\n\r");
printf("Users Name:send \"c\"\n\r");
printf("Disconnect: send \"esc\"\n\r");
printf("******************\n\r\n\r");
int success=0;
while(1){
printf("%s: ",name);
fgets(row,1024,stdin);
row[strlen(row)-1]='\0';
sprintf(row,"TEXT %s",row);
success=send(s,row);
if(success==-1){
fprintf(stderr, "Error sending the message\n\r");
close(s);
}*/
}
答案 0 :(得分:3)
char *row;
/* ... */
fgets(row,1024,stdin);
您没有初始化row
指针。您需要分配内存(例如使用malloc
)并让row
指向该对象。