Jump to content

Recommended Posts

Posted

boas tenho um problema que e o seguinte:

void booking_code(unsigned int date,unsigned int rcode,unsigned int seat,char *bcode)
{

    unsigned int i;
    for(i=0;i<5;i++,date=date/42)
        bcode[i] = (date%42)+((date%42)<10?'0':'A'-10);
    for(i=5;i<8;i++,rcode=rcode/42)
        bcode[i]=(rcode%42)+((rcode%42)<10?'0':'A'-10);
    for(i=8,seat--;i<10;i++,seat=seat/42)
        bcode[i]=(seat%42)+((seat%42)<10?'0':'A'-10);
    bcode[i]='\0';
    printf("%s\n",bcode);

}

tenho esta funçao que gera uma string com numeros e letras...so que o meu problema e que quero guardar todas as strings geradas pela funçao,para que as possas depois usar...como e que faço isto sabendo que o numero limite e desconhecido(penso que irei ter que usar malloc ).

typedef struct
{
    char reserva[11];
}reservas;

O meu objectivo era criar esta estrutura e ir pondo posiçao a posiçao a string gerada...so que o limite max nao e conhecido

Posted

Pois, tens que usar malloc() (e free(), e, possivelmente realloc()).

Basicamente, tens duas hipoteses:

a) usas um array (que vai crescendo (duplicando) a medida das necessidades)

b) usas uma lista ligada

A opcao a) é, talvez, mais simples de programar ... mas necessita de mais copias de dados tornando-se por isso menos eficiente.

What have you tried?

Não respondo a dúvidas por PM

A minha bola de cristal está para compor; deve ficar pronta para a semana.

Torna os teus tópicos mais atractivos e legíveis usando a tag CODE para colorir o código!

Posted

Basicamente, tens duas hipoteses:

a) usas um array (que vai crescendo (duplicando) a medida das necessidades)

b) usas uma lista ligada

Vais precisar de procurar reservas depois de inseridas ? Um array permite pesquisas muito mais eficientes (pesquisas binárias) do que uma lista ligada, apesar de se perder tempo a copiar dados nos redimensionamentos e/ou inserção no array. Podes no entanto reduzir o tempo perdido nos redimensionamentos fazendo-os por blocos em vez de elemento a elemento. Por exemplo, pré-alocas espaço para 10 e quando não chegar alocas para mais 10 de cada vez.

Posted

obrigado pelas respostas...eu decidi fazer com arrays pq estou mais a vontade e o que fiz foi reservei memoria para um array e defeni tamanho maximo 100 e sempre que encher aumento mais 100 😉

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.