Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it L'avatar di HIEI
    Registrato dal
    Mar 2003
    Messaggi
    253

    [c/c++] Code randomizzate e bi-code

    Salve.

    Dovrei realizzare per un esercizio per l'università due librerie, una per la gestione di una coda randomizzata e l'altra per la gestione di una bicoda. Ora quello che vorrei è se gentilmente qualcuno può aiutarmi in questo problema.

    Grazie
    steno983@azeroth Ubuntu 9.04 2.6.28 Gnome 2.26.1

    /home sweet /home

  2. #2
    Utente di HTML.it L'avatar di HIEI
    Registrato dal
    Mar 2003
    Messaggi
    253
    Allora sto provando a tirare giù qualcosa di banale, anche solo per creare una coda normale. Per ora ho creato questi file:

    item.h

    codice:
    #include <stdio.h>
    
    typedef char item;

    random_queue.h

    codice:
    #include "item.h"
    
    struct random_queue;
    typedef struct random_queue *queue_random_queue;
    
    queue_random_queue random_queue_make();
    int random_queue_is_empty(queue_random_queue);
    item random_queue_remove(queue_random_queue);
    void random_queue_insert(queue_random_queue,item);
    void random_queue_print(queue_random_queue);

    random_queue.c

    codice:
    #include "random_queue.h"
    #include <assert.h>
    #include <stdio.h>
    
    struct _node{
    	item c;
    	struct _node * next;
    };
    
    typedef struct _node * node;
    
    struct random_queue{
    	node first;
    	node last;
    };
    
    queue_random_queue random_queue_make(){
    	queue_random_queue new_queue = (queue_random_queue) malloc(sizeof(struct random_queue));
    	assert(new_queue);
    	new_queue->first = new_queue->last=(node) NULL;
    	return new_queue;
    }
    
    int random_queue_is_empty(queue_random_queue q){
    	assert(q);
    	if(q->first == (node) NULL)
    		return 1;
    	else
    		return 0;
    }
    
    void random_queue_insert(queue_random_queue q, item i){
    	assert(q);
    	{
    		node new_node = (node) malloc(sizeof(struct _node));
    		assert(new_node);
    		new_node->c=i;
    		if(random_queue_is_empty(q)==1){
    			q->first=new_node;
    			q->last=new_node;
    		} else {
    			q->last->next=new_node;
    			q->last=new_node;
    		}
    	}
    }
    
    void random_queue_print(queue_random_queue q){
    	node i=q->first;
    	while(i->next != (node) NULL){
    		printf("\n%c",i->c);
    		i=i->next;
    	}
    }
    
    item random_queue_remove(queue_random_queue q){}

    testrq.c
    codice:
    #include "random_queue.h"
    #include <stdio.h>
    
    main(){
    	queue_random_queue q;
    	q=random_queue_make();
    	return 0;
    }

    Ora il problema è che quando compilo con
    $ gcc -o trq testrq.c
    mi viene restituito il seguente errore: "undefined reference to 'random_queue_make'"

    Vista la mia incapacità di fondo mi è anche venuto il dubbio che possa mancare qualche parametro da passare al compilatore, ma chiedo a voi se sbaglio qualcosa.

    Grazie
    steno983@azeroth Ubuntu 9.04 2.6.28 Gnome 2.26.1

    /home sweet /home

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.