コード例 #1
0
ファイル: testStack.c プロジェクト: yannakisg/g-clibrary
int main() {
	Stack stack;
	int d0,d1,d2,d3,d4;
	
	
	d0 = 20;
	d1 = 2;
	d2 = 493;
	d3 = 3938;
	d4 = 932837;
	
#ifdef MEMPOOL
	allocMem(BLOCKS,sizeof(StackElement));
#endif

	if ( initStack(&stack, NULL) != 0 ) {
		fprintf(stderr, "An error occurred while initializing a stack\n");
		return -1;
	}
	
	if ( push(&stack , &d0) != 0) {
		fprintf(stderr, "An error occurred while adding an element\n");
		return -1;
	}
	if ( push(&stack , &d1) != 0) {
		fprintf(stderr, "An error occurred while adding an element\n");
		return -1;
	}
	if ( push(&stack , &d2) != 0) {
		fprintf(stderr, "An error occurred while adding an element\n");
		return -1;
	}
	if ( push(&stack , &d3) != 0) {
		fprintf(stderr, "An error occurred while adding an element\n");
		return -1;
	}
	if ( push(&stack , &d4) != 0) {
		fprintf(stderr, "An error occurred while adding an element\n");
		return -1;
	}
	
	int *d5;
	pop(&stack, (void **)&d5);
	
	printf("Top => %d\n",*d5);
	
	traverseStack(&stack);
	
	destroyStack(&stack);
	
#ifdef MEMPOOL	
	freeMemory();
#endif
	return 0;
}
コード例 #2
0
ファイル: Garbage.c プロジェクト: gangnam/ioopm-project
unsigned int collectGarbage(Memory mem) {
    Chunk c = memToChunk(mem);
    Metafreelist list = memToMeta(mem);
    if(c) {
        setZero(c);
        AddressSpace as = (AddressSpace) malloc(sizeof(addressspace));
        as->start = (RawPtr) c->start;
        as->end = (RawPtr)((char*)c + list->size);

        traverseStack(as, mf, c); 
        free (as);
        freeObj(mem, c);
        }
    return 0;
    }