C: Stack Overflow

Pagina 2 di 4
prima
1 2 3 4 ultimo
Visualizzazione dei risultati da 11 a 20 su 32
  1. #11
    kibibyte L'avatar di Luca IT
    Registrato
    Jul 2001
    Messaggi
    442

    Predefinito

    Abbiamo scritto in contemporanea....

    Il mio scopo è contare i colori di una serie di immagini.

    Quindi ho il ciclo esterno dove incremento il puntatore che punta alle immagini e poi ho l'array ove flaggo se ho già passato quel colore.

    quindi

    for (iloop = 0; iloop = (dim max immagine);iloop += 3) {
    pimm(iloop) = B;
    pimm(iloop +1)=G;
    pimm(iloop +2)=R;
    if (array[R][G][B] != 1) {
    array[R][G][B] = 1;
    }
    }

    semplicemente questo........

    il problema di questa memoria......io ho WXp...mi stressa......pero' fà ridere avere 1GB di RAM, il pgm quando parte.....praticamente ne ho allocata 100MB TOTALI.....e mi dice che ho la stack in cancrean....che cazzi........

  2. #12
    kibibyte L'avatar di Luca IT
    Registrato
    Jul 2001
    Messaggi
    442

    Predefinito

    la dichiarazione

    char array[256][256][256];

    se la metti fuori dal void gira perfettamente, ma non fà qullo che voglio.

    se lo metti all'interno...overflow....

    mallo e free funziona divinamente, ma rallenta troppo.

    Praticamente diventa + performante VB!!!!!!!!

    la cosa ridicola sai qual'è????? che chiedo a tutti...e nessuno riesce a risolverlo.....

    quindi dato che io sono duro in C e lo sto' cercando di imparare, deduco che "C'E'" una tecnica che fà quello che voglio.....

    grazie 1000 per l'aiuto che mi stai dando!

  3. #13
    byte
    Registrato
    Mar 2002
    Località
    San Sebastiano (TO) - Italy
    Messaggi
    160

    Predefinito

    for (iloop = 0; iloop = (dim max immagine);iloop += 3) {
    pimm(iloop) = B;
    pimm(iloop +1)=G;
    pimm(iloop +2)=R;
    if (array[R][G][B] != 1) {
    array[R][G][B] = 1;
    }
    }
    cosa sono R, G, B, costanti definite da te ?

    e la funzione pimm cosa e'

    ed il codice che contiene questo for dove sta' ??

  4. #14
    byte
    Registrato
    Mar 2002
    Località
    San Sebastiano (TO) - Italy
    Messaggi
    160

    Predefinito

    Partendo dal presupposto che nessuna e dico nessuna applicazione seria alloca staticamente un array da 16MB, oi, 16MB !!! ,
    il commodore con 64 K faceva girare il mondo, L'Amiga con 640K aveva il S.O. a finestre

    ma se propio ti serve fai malloc, ma non una serie di malloc e free, una...

    tu quante volte lo allochi e disallochi???

    e poi tu dici fuori, ed all'interno,

    ma della funzione dove hai anche il codice....

    for (iloop = 0; iloop = (dim max immagine);iloop += 3) {
    pimm(iloop) = B;
    pimm(iloop +1)=G;
    pimm(iloop +2)=R;
    if (array[R][G][B] != 1) {
    array[R][G][B] = 1;
    }
    }
    ???
    e fuori cosa vuol dire ...nel main ?


    P.S. sto facendo una casino con gli edit ....

  5. #15
    byte
    Registrato
    Mar 2002
    Località
    San Sebastiano (TO) - Italy
    Messaggi
    160

    Predefinito

    ...

  6. #16
    byte
    Registrato
    Mar 2002
    Località
    San Sebastiano (TO) - Italy
    Messaggi
    160

    Predefinito

    ... non e' spamm (non voluto)

    ma non so cosa sia successo, mi ha replicato il messaggio varie volte ...

  7. #17
    byte
    Registrato
    Mar 2002
    Località
    San Sebastiano (TO) - Italy
    Messaggi
    160

    Predefinito notina

    if (array[R][G][B] != 1) {
    array[R][G][B] = 1;
    }

    e' ridondante, basta

    array[R][G][B] = 1;

    se hai gia' fatto un accesso all'array (per il test, )
    se e' 1 non fai nulla (1 accesso)
    senno' lo metti ad 1 (2 accessi)

    allora tanto vale che assegni sempre 1
    (piccola cosa, comunque, ma dentro un ciclo...)

  8. #18
    kibibyte L'avatar di Luca IT
    Registrato
    Jul 2001
    Messaggi
    442

    Predefinito Re: notina

    Originally posted by furetto
    [B]if (array[R][G][B] != 1) {
    array[R][G][B] = 1;
    }

    e' ridondante, basta

    array[R][G] = 1;

    se hai gia' fatto un accesso all'array (per il test, )
    se e' 1 non fai nulla (1 accesso)
    senno' lo metti ad 1 (2 accessi)

    allora tanto vale che assegni sempre 1
    (piccola cosa, comunque, ma dentro un ciclo...)

    scusa....è che non ce l'ho davanti e mi sono dimenticato in conteggio!!!!

    if (array[R][G][B] != 1) {
    array[R][G][B] = 1;
    qta++;
    }

    per dentro e fuori intendo che il tutto io ce l'ho in una void {..}

    le mie funzioni ce le ho nel file .h e quindi se faccio.

    char array[256][256][256]

    void conta (byte R, byte G, byte B) {
    if (array[R][G][B] != 1) {
    array[R][G][B] = 1;
    qta++;
    }
    }


    void ciclo {
    .....
    ....
    for (iloop = 0; iloop = (dim max immagine);iloop += 3) {
    pimm(iloop) = B;
    pimm(iloop +1)=G;
    pimm(iloop +2)=R;
    conta(R,G,B);
    printf(mostro il valore di qta)
    qta=0;
    }
    .....
    .....
    }


    forse è + chiaro!!!

    ciauz

  9. #19
    kibibyte L'avatar di Luca IT
    Registrato
    Jul 2001
    Messaggi
    442

    Predefinito

    dimenticavo...io uso visual c++ di microzozz

  10. #20
    byte
    Registrato
    Mar 2002
    Località
    San Sebastiano (TO) - Italy
    Messaggi
    160

    Predefinito Re: Re: notina

    Originally posted by Luca IT
    if (array[R][G][B] != 1) {
    array[R][G][B] = 1;
    qta++;
    }
    ok ...

    pimm(iloop) = B;
    pimm(iloop +1)=G;
    pimm(iloop +2)=R;
    conta(R,G,B);
    ????forse
    B= pimm(iloop);
    G=pimm(iloop +1);
    R=pimm(iloop +2);


    ma pimm cosa e'

Pagina 2 di 4
prima
1 2 3 4 ultimo

Informazioni Thread

Users Browsing this Thread

Ci sono attualmente 1 utenti che stanno visualizzando questa discussione. (0 utenti e 1 ospiti)

Discussioni simili

  1. stack overflow
    By spaceboy in forum -= Hardware generico =-
    Risposte: 13
    Ultimo messaggio: 26-09-2001, 21:00
  2. Errore di protezione, overflow di divisione e chi più ne ha più ne metta!!!!
    By melange in forum -= Sistemi Operativi Windows e software generale =-
    Risposte: 7
    Ultimo messaggio: 26-07-2001, 01:21
  3. PROBLEMA DI OVERFLOW DI WONDOWS AIUTO!!!
    By sledgehammer in forum -= Sistemi Operativi Windows e software generale =-
    Risposte: 1
    Ultimo messaggio: 19-05-2001, 19:03

Tags

Regole d'invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
nexthardware.com - © 2002-2022