[Users-fr] Appel de fonction C et retour de tableaux

classic Classic list List threaded Threaded
2 messages Options
khairy mehdi khairy mehdi
Reply | Threaded
Open this post in threaded view
|

[Users-fr] Appel de fonction C et retour de tableaux

Bonjour,
Je cherche à retourner un tableau d'int depuis une fonction C,
mais malgré les exemples le tableau retourné ne contient que des
valeurs qui semblent incohérentes.

Peut-être pourrez vous voir ce que je rate.

Merci.

void LFSR( int seq[], int * stage, int * taps, int * start_value) {
    int size;
    int lfsr;
    int i;
    size = (2^(*stage))-1;
    lfsr = *start_value;

    for(i = 0; i < size; i++) {
        seq[i] = 1;
    }
}

=================================================
ilib_for_link('LFSR', 'lfsr.c', [], "c")

exec loader.sce

function PRN=LFSR(stage, taps, init_value)
    seq_size = 2^(stage)-1;
    seq=call("LFSR", stage, 2, "i", taps, 3, "i", init_value, 4, "i", "out", [1,seq_size], 1, "i");
    PRN=seq;
endfunction


_______________________________________________
users-fr mailing list
[hidden email]
http://lists.scilab.org/mailman/listinfo/users-fr
khairy mehdi khairy mehdi
Reply | Threaded
Open this post in threaded view
|

Re: Appel de fonction C et retour de tableaux

Rebonjour,
Désolé je viens de voir mon erreur, elle est située dans le fichier C,
le calcul de la taille est mauvais.

Cordialement,
Le 14/09/2014 12:05, khairy mehdi a écrit :
Bonjour,
Je cherche à retourner un tableau d'int depuis une fonction C,
mais malgré les exemples le tableau retourné ne contient que des
valeurs qui semblent incohérentes.

Peut-être pourrez vous voir ce que je rate.

Merci.

void LFSR( int seq[], int * stage, int * taps, int * start_value) {
    int size;
    int lfsr;
    int i;
    size = (2^(*stage))-1;
    lfsr = *start_value;

    for(i = 0; i < size; i++) {
        seq[i] = 1;
    }
}

=================================================
ilib_for_link('LFSR', 'lfsr.c', [], "c")

exec loader.sce

function PRN=LFSR(stage, taps, init_value)
    seq_size = 2^(stage)-1;
    seq=call("LFSR", stage, 2, "i", taps, 3, "i", init_value, 4, "i", "out", [1,seq_size], 1, "i");
    PRN=seq;
endfunction



_______________________________________________
users-fr mailing list
[hidden email]
http://lists.scilab.org/mailman/listinfo/users-fr