Hola, tengo una duda, gcc me lanza el siguiente warning:
gcc puntero1.c
puntero1.c: In function 'main':
puntero1.c:34: warning: parameter names (without types) in function declaration
Este es el código:
#include <stdio.h>
/* Practica para ordenar arreglos
1- Utilizando una funcion con un argumento array
2- Utilizando una funcion con un argumento puntero
*/
int Ord_Array(int Lista[], int Cant);
int Ord_Point(int *Lista, int Cant);
int main()
{
//Declaracion de variables
int miLista[10];
int *miPuntero;
int i;
int _max = 10;
//Inicializacion de array
puts("\t\t Ingreso de lista");
for(i = 0; i < 10; i++)
{
printf("Elemento n %d:",i);
scanf("%d",&miLista[i]);
}
puts("Terminado");
//Inicializamos el puntero
miPuntero = &miLista[0];
//Ordenamos
int Ord_Point(miLista, _max);
//Mostramos
for(i = 0; i < 10; i++)
{
printf("Elemento n %d \t %d\n",i,miLista[i]);
printf("Elemento n %d \t %d\n",i,*(miPuntero + i));
}
return 0;
}
int Ord_Array(int Lista[], int Cant)
{
int i, j, aux;
for(i = 0; i < Cant; i++)
{
for(j = i + 1; i < Cant + 1; i++)
{
if(Lista[i] > Lista[j])
{
aux = Lista[i];
Lista[i] = Lista[j];
Lista[j] = aux;
}
}
}
}
int Ord_Point(int *Lista, int Cant)
{
int i, j, aux;
for(i = 0; i < Cant; i++)
{
for(j = i + 1; i < Cant + 1; i++)
{
if(*(Lista + i) > *(Lista + j))
{
aux = *(Lista + i);
*(Lista + i) = *(Lista + j);
*(Lista + j) = aux;
}
}
}
}
No leí bien el código completo pero leyendo la linea que resaltaste, el warning que te da es porque estas declarando una función cuando a simple vista lo que queres hacer es llamarla pasandole los parametros respectivos. El prototipo de la función ya lo declaraste arriba así que supongo que te equivocaste.
Ord_Point(miLista, _max);
Saludos
Supongo que lo que querias hacer era
int resultado = Ord_Point(miLista, _max);
si no es así basta con que le quites el int
Ahora que lo hiciste notar... debería haber sido un void() (procedimiento)...
Gracias
CitarAdvertencia - mientras estabas escribiendo, una nueva respuesta fue publicada. Probablemente desees revisar tu mensaje.