Advertisement
Derik_hacker

Untitled

Dec 15th, 2023
151
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.01 KB | None | 0 0
  1. #define _CRT_SECURE_NO_WARNINGS
  2.  
  3. #include "lettura.h"
  4. #include <stdlib.h>
  5.  
  6. char* fgets_malloc(FILE* f) {
  7.    
  8.     if (f == NULL) {
  9.         return NULL;
  10.     }
  11.  
  12.     char* buffer = NULL;
  13.     int bufferSize = 0;
  14.     int character;
  15.     int count = 0;
  16.  
  17.  
  18.     while ((character = fgetc(f)) != EOF ) {
  19.        
  20.        if( character != '\n'){
  21.         if (count == bufferSize) {
  22.             bufferSize += 10; // Incremento arbitrario, puoi modificare secondo necessità
  23.             buffer = realloc(buffer, bufferSize);
  24.  
  25.             if (buffer == NULL) {
  26.              
  27.                 return NULL;
  28.             }
  29.         }
  30.  
  31.        
  32.         buffer[count++] = (char)character;
  33.        }
  34.     }
  35.  
  36.  
  37.     if (count == 0) {
  38.         buffer = malloc(1);
  39.         if (buffer != NULL) {
  40.             buffer[0] = '\0';
  41.         }
  42.     }
  43.     else {
  44.        
  45.         buffer = realloc(buffer, count + 1);
  46.         if (buffer != NULL) {
  47.             buffer[count] = '\0';
  48.         }
  49.     }
  50.  
  51.     return buffer;
  52. }
  53.  
  54.  
  55.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement