Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    [c] problema gestione buffer

    Ciao a tutti, devo ingrandire la grandezza di un buffer, perchè la grandezza finale mi è impossibile a sapere in fase di compilazione, io ho risolto cosi :
    codice:
    #include <stdio.h> 
    #include <string.h> 
    #include <malloc.h> 
    
    #define BLOCK 64
    
    int allunga ( char ** buffer, int size, int new_size) { 
    	
    	char *buffer_tmp = (char *)malloc(size); 
    	//controlli 
    	strncpy(buffer_tmp, *buffer, size); // salvo il vecchio buffer 
    	free(*buffer); 
    	*buffer = (char *)malloc( new_size); 
    	strncpy(*buffer, buffer_tmp, size); 
    	free(buffer_tmp); 
    }
    
    
    int main()  { 
    	
    	char * prova = (char *) malloc(BLOCK); 
    	int i = 0; 
    	
    	for (i = 0; i < BLOCK; i++)  
    		*(prova+i) = 'a'; 
    	printf("SIZEOF : %d, STRLEN %d\n", sizeof(prova), strlen(prova)); 
    	puts(prova); 
    	allunga(&prova, BLOCK, 2*BLOCK); 
    	printf("SIZEOF : %d, STRLEN %d\n", sizeof(prova), strlen(prova));
    	puts(prova); 
    	strcat(prova,"PPPPPPPPPPPPPPP");
    	printf("SIZEOF : %d, STRLEN %d\n", sizeof(prova), strlen(prova));
    	puts(prova); 
    
    	return 0; 
    }
    Potrebbe essere una soluzione valida??
    E poi esiste un modo per vedere quanta memoria è occupata da vettore allocato con mallloc? O provato ad usare anche calloc ma non cambia nulla...

  2. #2
    Utente di HTML.it L'avatar di shodan
    Registrato dal
    Jun 2001
    Messaggi
    2,381

    Re: [c] problema gestione buffer

    Originariamente inviato da PeppePes88
    Ciao a tutti, devo ingrandire la grandezza di un buffer, perchè la grandezza finale mi è impossibile a sapere in fase di compilazione, io ho risolto cosi :
    Da un'occhiata a realloc.
    http://www.cplusplus.com/reference/c...tdlib/realloc/
    L'esempio è simile a quello che ti serve.

    E poi esiste un modo per vedere quanta memoria è occupata da vettore allocato con mallloc? O provato ad usare anche calloc ma non cambia nulla...
    Che io sappia, no. L'unico è tenerne traccia da parte del programmatore.
    This code and information is provided "as is" without warranty of any kind, either expressed
    or implied, including but not limited to the implied warranties of merchantability and/or
    fitness for a particular purpose.

  3. #3
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480

    Re: Re: [c] problema gestione buffer

    Originariamente inviato da shodan
    Che io sappia, no. L'unico è tenerne traccia da parte del programmatore.
    Confermo ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.