간단한 채팅 프로그램을 만들기 위해 노력하고 있는데 세그먼트 화 오류가 발생했습니다. 이는 내 이해가 Java의 null 포인터와 비슷합니다. 문제가있는 것 같지만 해결 방법이 없습니다. iP 주소를 인쇄하려고 할 때 오류가 발생합니다. 어떻게이 문자열에 제대로 초기화를 시도 했습니까? 나는 여기에 문자열을 사용한 세그먼트 화 오류 문제
char *iP;
strcpy(iP, "lsdlfkj");
char iP[20] = "asskdf";
및
을 시도 내 주요 코드입니다했다. serverMenu는 아직 수행하지 않습니다#include <stdio.h>
#include <string.h>
#define CAP 15
int size = 0;
int serverMenu(int task, char *userid, char *ipA);
struct user{
char username[20];
char *ipAdress;
unsigned short portNumber;
};
struct user chatroom[CAP];
int main(){
char username[20];
char *iP;
strcpy(iP, "aasdas");
unsigned short portNumber;
printf("Welcome to the chat room!\n");
printf("Please enter your username (up to 20 characters long):\n");
scanf("%s", username);
printf("Please enter your TCP port number\n");
scanf("%hu", &portNumber);
int choice = 1;
printf("\n%s\n", username);
printf("%hu\n", portNumber);
printf("%d\n", choice);
printf("%s", iP);
serverMenu(choice,username,iP)
}
인기있는 수요, 서버 메뉴로. 당신은 그 호출하기 전에 chatroom[size].ipAdress
메모리를 할당하지 않은
strcpy(chatroom[size].ipAdress, ipA);
이 지금까지
int serverMenu(int task, char *username, char *ipA){
printf("Successfully logged on as");
if(task == 1){
if(size != CAP){
printf("Successfully logged on as");
strcpy(chatroom[size].username, username);
strcpy(chatroom[size].ipAdress, ipA);
//chatroom[size].portNumber = pN;
size++;
printf("Successfully logged on as");
}
else{
printf("Sorry, there are no available spots in the chat room\n");
}
}
return 0;
}
최대 20 자까지 - 아니요, 최대 19 자까지 입력 할 수 있습니다. –
난 당신이 서버 문제에 대한 – LeatherFace
에 대한 귀하의 serverMenu보고 싶지 수도 있습니다 내가 배열에 던져 그 무작위 정수했다. 그것은 요점이 아니며 오류를 던지지 않을 것입니다. 및 가죽 얼굴, 그것을 위해 인쇄 진술에 도달하지 않습니다 그래서 그것을 serverMeny – user3704079