vector aleatorio sin repetir

#include <stdio.h>
#include <time.h>
#include <stdlib.h>
#include <stdbool.h>

#define TAM 10
/*
	Realizar un programa que rellene de forma aleatoria un vector
	de 10 elementos con valores aleatorios entre 0 y 9 de forma
	que no se repitan.
*/

void rellenar(int v[]){// 0      1           9
	bool usados[TAM]; // false, false, ..., false
	int valor;

	for(int i = 0; i < TAM; i++){
		usados[i] = false;
	}
	for(int i = 0; i < TAM; i++){
		do{
			valor = rand() % 10;
		}while(usados[valor] == true);
		usados[valor] = true;
		v[i] = valor;
	}
}

void imprimir(int v[]){
	for(int i = 0; i <= TAM - 1; i++){
		printf("vector[%d]: %d\n", i, v[i]);
	}
}

int main (){
	int v[TAM];
	rellenar(v);
	imprimir(v);

	return 0;
}