Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

SolariiS

ponteiro de matriz como parametro de funçao

Recommended Posts

estou fazendo um teste basico de selection sort passando o ponteiro de uma matriz (array)

 

#include<stdlib.h>
#include<stdio.h>
#include<time.h>
#define TAM 10


//selection sort
void selection_sort(int *num) 
{ 
 int i, j, min,swap,tam;
 tam = TAM;
 for (i = 0; i < (tam-1); i++) 
  {
   min = i;
   for (j = (i+1); j < tam; j++) {
     if(*(num+j) < *(num+min)) {
       min = j;
     }
   }
   if (i != min) {
     swap = *(num+i);
     *(num+i) = *(num+min);
     *(num+min) = swap;
   }
 }
}


main()
{
     int i;
int a[10] = {12, 7, 4, 50, 8, 15, 30, 21, 18, 1};


//selection sort

selection_sort(&a);            >>>>>>>>>>>>> cannot convert `int (*)[10]' to `int*' for argument `1' to `void selection_sort(int*)' 
for(i=1;i<10;i++)
printf("%d \n",a[i]);



system("PAUSE");

}

sou novo no C, alguem sabe como resolvo?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você pelo jeito não entendeu o conceito de ponteiros.

 

int a[] = {9, 8, 7, 6, 5, 4, 3, 2, 1};

 

Isso cria um vetor chamado a, de tipo int[10]. Seu valor (ou seja, 'a') é o endereço de seu primeiro elemento (ou seja, igual a &a[0]). Seu valor, então, tem tipo ponteiro para int (int *). O tipo de &a é, como seu compilador avisou, um ponteiro para ponteiro para int. Sua função requer um ponteiro para int.

 

Veja se com isso consegue resolver seu problema. Qualquer coisa poste aqui.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.