Advertisement
Derik_hacker

Untitled

Dec 15th, 2023
125
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 0.99 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 && character != '\n') {
  19.        
  20.         if (count == bufferSize) {
  21.             bufferSize += 10; // Incremento arbitrario, puoi modificare secondo necessità
  22.             buffer = realloc(buffer, bufferSize);
  23.  
  24.             if (buffer == NULL) {
  25.              
  26.                 return NULL;
  27.             }
  28.         }
  29.  
  30.      
  31.         buffer[count++] = (char)character;
  32.     }
  33.  
  34.    
  35.     if (count == 0) {
  36.         buffer = malloc(1);
  37.         if (buffer != NULL) {
  38.             buffer[0] = '\0';
  39.         }
  40.     }
  41.     else {
  42.        
  43.         buffer = realloc(buffer, count + 1);
  44.         if (buffer != NULL) {
  45.             buffer[count] = '\0';
  46.         }
  47.     }
  48.  
  49.     return buffer;
  50. }
  51.  
  52.  
  53.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement