|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Jul 2006
Messaggi: 1073
|
[C] problema con allocazione memoria
premetto che sono un po' arruginito!
ho questa struct: typedef struct pagMem{ char* pag; int id:5; int data; }pmem; in un file .c cerco di allocare la memoria per un vettore di struct ma mi da un errore pmem* block = (pmem*)malloc(512) ma mi dice: initializer element is not constant ki mi sa' aiutare? soprattutto non riesco a dichiarere neanche una singola struct! se scrivo: pmem block; se provo ad accedere a qualche elemento al suo interno, aclipse non mi apre niente cioe' non trova niente!
__________________
desktop: AMD Ryzen7 5700x 8-core skt AM4 - dissipatore Artic Freezer A35 CO- Gigabyte B550-AORUS ELITE ax v2 - DDR4 32GB G.Skill PC 3200- SSD WD_Black NS770 1Tb - HD 1Tb - SAPPHIRE Radeon RX 580 NITRO+ 8 GB GDDR5 - monitor: Asus VS248HR 24" - case: Corsair 200R - alimentatore: XFX PRO650W 80 plus bronze modulare |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Roma
Messaggi: 15625
|
Certo che non puoi in quel modo...cosa c'è che non ti piace in questo?
pmem block[quanti elementi vuoi];
__________________
0: or %edi, %ecx; adc %eax, (%edx); popf; je 0b-22; pop %ebx; fadds 0x56(%ecx); lds 0x56(%ebx), %esp; mov %al, %al andeqs pc, r1, #147456; blpl 0xff8dd280; ldrgtb r4, [r6, #-472]; addgt r5, r8, r3, ror #12 |
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Aug 2001
Città: San Francisco, CA, USA
Messaggi: 13827
|
pmem* block = (pmem*) malloc(sizeof(pmem)*512);
Ciao
__________________
GPU Compiler Engineer |
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Roma
Messaggi: 15625
|
Ha messo block come variabile globale, quindi niente chiamate a funzioni per inizializzarla.
Serve un constructor, o una allocazione fissa.
__________________
0: or %edi, %ecx; adc %eax, (%edx); popf; je 0b-22; pop %ebx; fadds 0x56(%ecx); lds 0x56(%ebx), %esp; mov %al, %al andeqs pc, r1, #147456; blpl 0xff8dd280; ldrgtb r4, [r6, #-472]; addgt r5, r8, r3, ror #12 |
|
|
|
|
|
#5 | |
|
Senior Member
Iscritto dal: Aug 2001
Città: San Francisco, CA, USA
Messaggi: 13827
|
Quote:
__________________
GPU Compiler Engineer |
|
|
|
|
|
|
#6 |
|
Senior Member
Iscritto dal: Jul 2006
Messaggi: 1073
|
mi sn reso conto che facevo una scemenza atroce solo ke io dopo una settimana che non tocco un pc per programamre mi dimentico tutto, figuratevi dopo le vacanze di natale! cercavo di allocare memoria fuori da un main
dovrei aver trovato la soluzione x rendere ogni pagina di memoria di 512 kb: typedef struct pagMem{ char pag[507]; int id:5; int data; }pmem; ora avrei un'altra domanda xo'...
__________________
desktop: AMD Ryzen7 5700x 8-core skt AM4 - dissipatore Artic Freezer A35 CO- Gigabyte B550-AORUS ELITE ax v2 - DDR4 32GB G.Skill PC 3200- SSD WD_Black NS770 1Tb - HD 1Tb - SAPPHIRE Radeon RX 580 NITRO+ 8 GB GDDR5 - monitor: Asus VS248HR 24" - case: Corsair 200R - alimentatore: XFX PRO650W 80 plus bronze modulare |
|
|
|
|
|
#7 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Roma
Messaggi: 15625
|
Che cosa stai cercando di fare con questo coso? E che relazione dovrebbe avere con "512kb"?
__________________
0: or %edi, %ecx; adc %eax, (%edx); popf; je 0b-22; pop %ebx; fadds 0x56(%ecx); lds 0x56(%ebx), %esp; mov %al, %al andeqs pc, r1, #147456; blpl 0xff8dd280; ldrgtb r4, [r6, #-472]; addgt r5, r8, r3, ror #12 |
|
|
|
|
|
#8 |
|
Senior Member
Iscritto dal: Jul 2006
Messaggi: 1073
|
in pratica devo creare un programma x memorizzare i salvataggi dei giochi, ovviamente e' una cosa molto semplice (x ki programma bene) xke' e' un progetto x l'uni ma ci sn molte cose che non ricordo, ad esempio: una dichiarazione in un file header come quella di cui vi ho chiesto prima occupa direttamente memoria?
cmq x farla breve devo realizzare questo prog ma ogni pagina di memoria deve essere grande MASSIMO 512b (si prima ho sbagliato a mettere kb) x un totale di pagine della grandezza di 64 kb! se proprio vuoi leggere il progettino puoi farlo qui: http://margot.di.unipi.it/mediawiki/...S07-1-base.pdf
__________________
desktop: AMD Ryzen7 5700x 8-core skt AM4 - dissipatore Artic Freezer A35 CO- Gigabyte B550-AORUS ELITE ax v2 - DDR4 32GB G.Skill PC 3200- SSD WD_Black NS770 1Tb - HD 1Tb - SAPPHIRE Radeon RX 580 NITRO+ 8 GB GDDR5 - monitor: Asus VS248HR 24" - case: Corsair 200R - alimentatore: XFX PRO650W 80 plus bronze modulare Ultima modifica di Shotokhan : 10-01-2008 alle 18:02. |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 19:23.




















