小编mat*_*ass的帖子

我正在尝试从c中的文件读取一行并动态分配内存,但结果总是很糟糕

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)

我试图读取一个字符后直接分配内存。

c memory allocation file dynamic

3
推荐指数
1
解决办法
2811
查看次数

recvfrom() 总是返回零远程地址

我正在编写一个简单的 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

c unix sockets udp datagram

0
推荐指数
1
解决办法
1375
查看次数

标签 统计

c ×2

allocation ×1

datagram ×1

dynamic ×1

file ×1

memory ×1

sockets ×1

udp ×1

unix ×1