Gestione della memoria programma C

di il
3 risposte

Gestione della memoria programma C

Buon giorno a tutti. Ho scritto un programma in c per ordinare gli elementi di un vettore inserito dall'utente. Poichè Utilizzo il C da poco(non ne conosco altri) vorrei sapere il modo in cui è gestita la memoria in questo programma...Io sono convinto sia gestita in modo orribile
chiedo a voi qualche suggerimento per gestirla in maniera ottimale..magari utilizzando puntatori o qualcosa di simile. Chiedo a voi esperti grazie mille in anticipo.
Ecco il sorgente

#include <stdio.h>
#include <string.h>
# define dmax 30
void ordinamento_vett(char v[],int num)
{
	int n;
	
	int i;
	char t;
	for (n=0;n<=num;n++) // se ho x cifre da ordinare servono x-1 "for" per ordinarlo//  //corretamente//
	{
	for(i=0;i<num;i++)
	{
		if(v[i]>v[i+1])
		{
			t=v[i];
			v[i]=v[i+1];
			v[i+1]=t;
			
		}
	}
	}
	
}

void stampa_normale(char v[])
{
	int k=0;
	printf("\t il vettore da te inserito è: ");
	for(;k<dmax;k++)
	{
		printf("%2c",v[k]);
	}
	printf("\n");
	
}

void stampa_ordinato(char v[])
{
	int j;
	printf("\til vettore ordinato correttamente è:");
	for(j=0;j<=dmax;j++)
	{
		printf("%2c",v[j]);
	}
	printf("\n");
}

int main()
{
	int num;
	char v[dmax];
	printf("\tinserisci vettore da ordinare(lettere a-z e numeri 0-9)\n");
	scanf("%s",v);
	printf("\t\nda quanti caratteri è composto il vettore??\n");
	scanf("%d",&num);
	stampa_normale(v);
	ordinamento_vett(v,num);
	stampa_ordinato(v);
	return 0;
}

3 Risposte

  • Re: Gestione della memoria programma C

    Credo tu debba utilizzare la funzione malloc() e poi al termine per svuotare la memoria la funzione free()....
  • Re: Gestione della memoria programma C

    Malloc? e perche? se il vettore è statico non c'è bisogno. la sua dimensione e definita dal define in alto quindi nessuna allocazione dinamica. Nella funzione ordinamento_vettore mi dici che funzione ha la variabile j?
  • Re: Gestione della memoria programma C

    skynet ha scritto:


    Nella funzione ordinamento_vettore mi dici che funzione ha la variabile j?
    Errore mio, non ha nessuna funzione mi ero dimenticato di cancellarla
Devi accedere o registrarti per scrivere nel forum
3 risposte