Aqui te dejo un ejemplo como el descrito, el ejemplo genera un arreglo de enteros y los llena con valor random hasta que el valor random coincida con 20000
Saludos!
#include<stdlib.h>
#include<stdio.h>
#include<time.h>
int main() {
int *arreglo = NULL;
unsigned int i = 0;
srand(time(NULL
)); //Inicilizamos la semilla aleatoria do {
arreglo
=(int*) realloc(arreglo
,(i
+1)*sizeof(int)); //reservamos para i+1 elementos arreglo
[i
] = rand(); //Guardamos un numero random en arreglo[i] printf("Guardando %i en el arreglo posicion [%lu]\n",arreglo
[i
],i
); i++; //Incrementamos contador
}while(arreglo[i-1] != 20000); //Continuamos hasta que el numero sea 20000
printf("Se guardardon %lu elementos\n",i
); return 0;
}