Articles of stack di

In C, le parentesi graffe fungono da cornice dello stack?

Se creo una variabile all’interno di una nuova serie di parentesi graffe, la variabile è saltata fuori dallo stack sulla parentesi di chiusura o rimane bloccata fino alla fine della funzione? Per esempio: void foo() { int c[100]; { int d[200]; } //code that takes a while return; } d occuperà memoria durante il code […]

Creazione di oggetti nello stack / heap?

Il codice seguente crea un object nello stack: Object o; Quando creiamo un object sull’heap possiamo usare: Object* o; o = new Object(); piuttosto che: Object* o = new Object(); Quando dividiamo la creazione dell’object heap su due righe e chiamiamo il costruttore sulla seconda riga ( o = new object() ), questo significa nella […]

I thread hanno un heap distinto?

Per quanto ne so, ogni thread ottiene uno stack distinto quando il thread viene creato dal sistema operativo. Mi chiedo se ogni thread ha un heap distinto anche da solo?

progettare una pila in modo che getMinimum () sia O (1)

Questa è una delle domande dell’intervista. È necessario progettare uno stack che contiene un valore intero tale che la funzione getMinimum () restituisca l’elemento minimo nello stack. Ad esempio: considera l’esempio di seguito caso 1 5 -> TOP 1 4 6 2 Quando viene chiamato getMinimum () dovrebbe restituire 1, che è l’elemento minimo nello […]

Ordine di allocazione variabile locale nello stack

Dai un’occhiata a queste due funzioni: void function1() { int x; int y; int z; int *ret; } void function2() { char buffer1[4]; char buffer2[4]; char buffer3[4]; int *ret; } Se interrompo con function1() in gdb e stampo gli indirizzi delle variabili, ottengo questo: (gdb) p &x $1 = (int *) 0xbffff380 (gdb) p &y […]

Perché le pile in genere crescono verso il basso?

So che nelle architetture che conosco personalmente (x86, 6502, ecc.), Lo stack cresce tipicamente verso il basso (cioè ogni elemento inserito nello stack produce un SP decrementato, non uno incrementato). Mi sto interrogando sulle ragioni storiche per questo. So che in uno spazio di indirizzi unificato, è conveniente avviare lo stack all’estremità opposta del segmento […]

Lo stack trabocca dalla profonda ricorsione in Java?

Dopo aver fatto esperienza con i linguaggi funzionali, sto iniziando a usare la ricorsione più in Java – Ma il linguaggio sembra avere uno stack di chiamate relativamente basso di circa 1000. C’è un modo per aumentare lo stack delle chiamate? Come posso creare funzioni che sono milioni di chiamate profonde, come in Erlang? Lo […]

Come implementare una coda usando due stack?

Supponiamo di avere due stack e nessun’altra variabile temporanea. È ansible “build” una struttura dati di coda usando solo i due stack?

Come implementi uno stack e una coda in JavaScript?

Qual è il modo migliore per implementare uno stack e una coda in JavaScript? Sto cercando di fare l’algoritmo dello shunting-yard e avrò bisogno di queste strutture dati.

Differenza tra char * str = “STRING” e char str = “STRING”?

Mentre scrivevo una semplice funzione per rimuovere un particolare carattere da una stringa, mi sono imbattuto in questo strano problema: void str_remove_chars( char *str, char to_remove) { if(str && to_remove) { char *ptr = str; char *cur = str; while(*ptr != ‘\0’) { if(*ptr != to_remove) { if(ptr != cur) { cur[0] = ptr[0]; } […]