コード例 #1
0
void base_destruir(base_t* base){
    //destruyo lo interior a la base
    grafo_destruir(base->mapa);
    heap_destruir(base->cerradofabricas,NULL);
    lista_destruir(base->fabricasavisitar,NULL);
    hash_destruir(base->fabricas);
    //destruyo la base
    free(base);
}
コード例 #2
0
ファイル: uniq.c プロジェクト: t0mixcs/TP-2
int main(int argc, char **argv){
	if(argc != 2){
		return 1;
	}
	FILE *archivo = fopen(argv[1], "r");
	if(archivo == NULL){
		fprintf(stderr, "No se pudo abrir el archivo");
		return 1;
	}
	hash_t *hash_lineas = hash_crear(NULL);
	filtrar_e_imprimir_lineas(archivo, hash_lineas);
	hash_destruir(hash_lineas);
	return 0;
}
コード例 #3
0
base_t *base_crear(){
    //creo la base
    base_t* base = malloc(sizeof(base_t));
    if (base == NULL) return NULL;
    //creo los componentes de la base
    base->mapa = grafo_crear();
    base->fabricas = hash_crear((hash_destruir_dato_t)destruir_fabrica);
    base->cerradofabricas = heap_crear((cmp_func_t)fabrica_cierra_primero);
    base->fabricasavisitar = lista_crear();
    //verifico si los componentes se crearon correctamente
    if ((base->mapa==NULL) || (base->fabricas==NULL) || (base->cerradofabricas==NULL) || (base->fabricasavisitar==NULL)){
        if (base->mapa!=NULL) grafo_destruir(base->mapa);
        if (base->cerradofabricas!=NULL) heap_destruir(base->cerradofabricas,NULL);
        if (base->fabricasavisitar!=NULL) lista_destruir(base->fabricasavisitar,NULL);
        if (base->fabricas!=NULL) hash_destruir(base->fabricas);
        return NULL;
    }
    base->capacidad = 0;
    base->polonorte = 0;
    //todo exitoso
    return base;
}
コード例 #4
0
ファイル: join.c プロジェクト: nee47/T-P-2
// Liberar un hash y cierra 2 archivos 
void liberar(hash_t* hash, FILE* a1, FILE* a2){
  if(hash) hash_destruir(hash);
  fclose(a1);
  fclose(a2);
}