プログラムに問題があります。関数を使用した後、fclose()
エラーが発生しました:
" * `./server' のエラー: 破損した二重リンク リスト: 0x000000000251a230 * Przerwane (zrzut pamięci)"
私fclose()
が機能を削除すれば、everythinkはOKです。これは私の関数のコードです:
FILE *fHandler;
struct udp_message **returnArray;
struct udp_message *message;
char *line = NULL;
uint32_t linesNum;
uint32_t i = 0;
size_t length;
ssize_t read;
fHandler = fopen(filePath, "r");
if (fHandler == NULL) {
perror("ERROR");
return NULL;
}
returnArray = malloc(sizeof(struct udp_message *)*CONSOLE_BUFFER);
message = malloc(sizeof(struct udp_message));
while ((read = getline(&line, &length, fHandler)) != -1) {
message = (struct udp_message *)line;
if (message->messageTime < aboveTime) {
continue;
}
returnArray[i] = malloc(sizeof(struct udp_message));
memcpy(returnArray[i++], message, sizeof(struct udp_message));
}
memcpy(messageNum, &i, sizeof(i));
fclose(fHandler);
return returnArray;