WillyWonka123456789
WillyWonka123456789 - Ominide - 5 Punti
Salva
Ragazzi urgentissimo mi serve un programma c che simuli la malloc da dentro (allocazione dinamica).io ho fatto questo ma non so continuare vi prego aiutatemi:
DOMANI E' LA CONSEGNA RAGA E' L'ULTIMO ANNO HO BISOGNO DI UN BUON VOTO VI PREGO.

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define maxheap 1000

void stword(unsigned int size,char *where);
unsigned int ldword (char *where);
int *cellalibera();
void trova();

char *pheap=NULL;
char heap [maxheap];

int main()
{

}

void stword(unsigned int size,char *where){
/*ISOLARE GLI 8 BIT + SIGNIFICATIVI DA QUELLI MENO SIGNIFICATIVI*/
unsigned char msb;/*BIT + SIGNIFICATIVO*/
unsigned char lsb;/*BIT - SIGNIFICATIVO*/
lsb = size % 256;/*OPERAZIONE BITWISE*/
msb = size / 256;/*SHIFT A DESTRA*/
*where = msb;
*(where+1) = lsb;

}
unsigned int ldword (char *where){
return (*where + 256 + *(where+1));
}

int *cellalibera(){
/*DICHIARO VARIABILI*/
int *p;
int size;

/*VERIFICO SE L'HEAP E' LIBERO O MENO*/
/*INIZIO MG MALLOC*/
if (pheap==NULL){
*pheap = '+';
*(pheap + 1) = '+';
stword(maxheap - 8,pheap + 2);
*(pheap + maxheap - 2)='+';
*(pheap + maxheap - 1)='+';
stword(maxheap - 8,pheap + maxheap - 4);
pheap = & heap[0];
}
*p=ff(size);
if(p != NULL){
occupa(p);
p = p + 4;
}
return p;
}

void trova() {
/*RICERCA LA CELLA LIBERA NELL'HEAP*/
int pheap;
int *p;
int trovato;
int size;
*p=pheap;
trovato=0;
do{
if((ldword(p+2)>size)&&(*p =='+')){
trovato = 1;
}else{
p = p + (ldword(p+2));
}

}while((trovato=0)&&(p<pheap+maxheap));
}
Questo topic è bloccato, non sono ammesse altre risposte.
Come guadagno Punti nel Forum? Leggi la guida completa
In evidenza
Classifica Mensile
Vincitori di agosto
Vincitori di agosto

Come partecipare? | Classifica Community

Community Live

Partecipa alla Community e scala la classifica

Vai al Forum | Invia appunti | Vai alla classifica

Registrati via email