所以我花了一段时间才弄清楚,因为“分段错误”没有显示任何代码行,但显然这导致了我的程序中的分段错误:
if (getaddrinfo(options.servername, (char *)options.portno, &hints, &ai) < 0) {
bail_out(EXIT_FAILURE, "Could not recieve server adress\b");
}
变量设置如下
struct opts {
long int portno;
char *servername;
};
struct opts options;
parse_args(argc, argv, &options);
// Create Socket
struct addrinfo hints;
struct addrinfo *ai, *aip;
hints.ai_family = AF_INET;
hints.ai_socktype = SOCK_STREAM;
hints.ai_protocol = IPPROTO_TCP;
我对 C 很陌生,尤其是指针的东西对我来说仍然很陌生,所以希望有人能找到可能的原因。