char * readline(FILE *fp, char *buffer) {
char ch;
int i = 0, buff_len = 0;
buffer = malloc(buff_len);
while ((ch = fgetc(fp)) != '\n' && ch != EOF) {
++buff_len;
buffer = realloc(buffer, buff_len);
buffer[i] = ch;
++i;
}
return buffer;
}
Run Code Online (Sandbox Code Playgroud)
我试图读取一个字符后直接分配内存。
我正在编写一个简单的 udp 服务器应用程序,当我尝试获取远程连接用户的地址时遇到错误。
while(run == 1) {
struct sockaddr_in client_addr;
char message[1024];
int len = recvfrom(sockfd, message, 1024, 0, (struct sockaddr*)&client_addr, sizeof client_addr);
printf("Received request from: %s#%d\n", inet_ntoa(client_addr.sin_addr), ntohs(client_addr.sin_port));
}
Run Code Online (Sandbox Code Playgroud)
它总是返回远程地址:0.0.0.0#0