C/Visual C - Reordenar puntero por partes en c

 
Vista:
sin imagen de perfil

Reordenar puntero por partes en c

Publicado por Ángel (19 intervenciones) el 23/01/2018 16:50:03
Buenas a todos tengo un problemilla en c a la hora de reordenar un puntero que guarda enteros, el problema es el siguiente:

1
2
int *vector_posicion_apariciones;
vector_posicion_apariciones=calloc(numero_total_apariciones,sizeof(int));

Quiero ordenar ese vector una vez que lo he rellenado del todo, y lo tengo que hacer por partes, es decir, si el tamaño del vector es 100, tengo que ordenar de la 0 a la 63 y guardarlo ordenado en el mismo puntero, de la 64 a la 70 y guardarlo en el mismo puntero...
estoy usando qsort(&vector_posicion_apariciones[indice_posicion],vector_apariciones[d],sizeof(int),cmpfunc);

en vector apariciones tengo cada cuanto tengo que ordenar, e indice posicion lo uso como acumulador para saber por donde voy en el puntero, tengo esto:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
int cmpfunc (const void * a, const void * b) {
	return ( *(int*)a - *(int*)b );
}
 
int indice_posicion=0;
 
for(int d=0;d<numero_contraseñas;d++){
 
	qsort(&vector_posicion_apariciones[indice_posicion],vector_apariciones[d],sizeof(int),cmpfunc);
 
	if (vector_apariciones[d]==0)
 
		indice_posicion++;
 
	else{
 
		indice_posicion+=vector_apariciones[d];
 
	}
}


No me funciona, no se si podria hacerlo de otra forma o si se puede hacer lo que quiero.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Reordenar puntero por partes en c

Publicado por Tom (619 intervenciones) el 23/01/2018 17:33:15
Define "no me funciona".
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Reordenar puntero por partes en c

Publicado por Ángel (19 intervenciones) el 23/01/2018 17:36:21
No me lo ordena como yo quiero, yo quiero que lo ordene por partes, y de esta forma me coge todo el vector y me lo ordena.
Quiero que me ordene por ejemplo de la muestra 0 a la 60, la siguiente vez vaya de la 61 a la 80 por ejemplo, pero lo ya ordenado no me lo toque.
El problema que tengo es que no se si con un puntero como lo tengo eso se puede hacer.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Reordenar puntero por partes en c

Publicado por Tom (619 intervenciones) el 23/01/2018 18:13:31
Copio del man de qsort:

1
2
void qsort(void *base, size_t nmemb, size_t size,
int (*compar)(const void *, const void *));

The qsort() function sorts an array with nmemb elements of size size. The base
argument points to the start of the array.

O sea, pásale parámetros coherentes y debería funcionar.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Reordenar puntero por partes en c

Publicado por Yo (4 intervenciones) el 23/01/2018 18:32:21
Buenas a todos tengo un problemilla en c a la hora de reordenar un puntero que guarda enteros, el problema es el siguiente:

¿Los punteros guardan enteros?.

¿Se puede reordenar un puntero?

Claramente tu problemilla en c, no es el lenguaje C, es tu lenguaje.

Tu lenguaje, te lleva a la idea, la idea a la acción. Es fácil deducir que tus acciones serán malas si usas lenguaje malo.

reordena tu lenguaje, y seguramente no sufrirás tantos problemas de diseño.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
-1
Comentar