Ajuda em trecho de código

2 respostas
T

Pessoal, eu estava querendo transformar os seguintes trechos de código da linguagem C para a lingaguem java, mas o negocio ta “cabeludo”…
será que alguem pode dar uma ajuda ai…
segue os respectivos codigos na linguagem C

Codigo 1 em C

int memcmp_signed;

int unsigned_memcmp( void *p1, void *p2, unsigned int i )
{
    unsigned char *pc1 = (unsigned char *) p1;
    unsigned char *pc2 = (unsigned char *) p2;
    while ( i-- ) {
        if ( *pc1 < *pc2 )
            return -1;
        else if ( *pc1++ > *pc2++ )
            return 1;
    }
    return 0;
}

Codigo 2 em C

bounded_compare( const unsigned int *i1,
                 const unsigned int *i2 )
{
    static int ticker = 0;
    if ( ( ticker++ % 4096 ) == 0 )
        fprintf( stderr, "." );
    unsigned int l1 = (unsigned int) ( length - *i1 );
    unsigned int l2 = (unsigned int) ( length - *i2 );
    int result;
    if ( memcmp_signed )
        result = unsigned_memcmp( buffer + *i1,
                                  buffer + *i2,
                                  l1 < l2 ? l1 : l2 );
    else
        result = memcmp( buffer + *i1,
                         buffer + *i2,
                         l1 < l2 ? l1 : l2 );
    if ( result == 0 )
        return l2 - l1;
    else
        return result;
};

Se alguem conseguir ai… ficarei muito agradecido pela ajuda…

Flws… :grin:

2 Respostas

J

Taq,

Triste notícia a te dar… Vc NUNCA vai conseguir traduzir este código do jeito que está… Porque? Em C vc tem aritmética de ponteiros, quer dizer, você pode pegar o valor da posição de memória e mandar ele adicionar (ou subtrair) mais um. assim vc pula uma posicao de memória e consegue acessar o dado naquela posição. Java não faz isso. É uma questão de segurança que a Sun colocou. Como você poderia ficar “andando” na memória, teoricamente (e na prática também) você poderia acessar uma posicao da memória que esta reservado para o sistema operacional (por exemplo) e escrever lá. E daí quebrar o funcionamento da máquina.

O que vc precisa fazer é entender o código e gerar um, segundo o suporte que Java te oferece.

Entendeu? se não tento te explicar melhor.

Abraços,

julianoens

T

Sim, compreendo o que quis dizer, eu vou dar uma olhada e ver o que posso fazer para transformar isso em java, ai qualquer duvida eu posto aki…

Flws e vlws pela a ajuda…

TAQ - Ciência da Computação - UFG :grin:

Criado 18 de junho de 2005
Ultima resposta 21 de jun. de 2005
Respostas 2
Participantes 2