lorena1601 Posted May 1, 2012 Report Share Posted May 1, 2012 Olá, estou "convertendo" um algoritmo que fiz em java para c++, em um dos métodos que eu tenho, retorna um int[], mas não consigo fazer o mesmo em c++.. já fiz alguns testes e até agora só deu erro.. :(Alguma sugestão? :mellow: Quote Link to comment Share on other sites More sharing options...
0 Binder Posted May 1, 2012 Report Share Posted May 1, 2012 Ola, poste seu código ai, para facilitar a compreensão.... Quote Link to comment Share on other sites More sharing options...
0 lorena1601 Posted May 1, 2012 Author Report Share Posted May 1, 2012 Olá, em java tá assim://Método que escolhe dois processos ainda não executados e retorna a posição de ambos public int[] returnProc(boolean[] procb){ int aux1 =0, aux2 = 0; int resp[] = new int[2]; ... resp[0] = aux1; resp[1] = aux2; return resp; }Em c++, o nome do método deveri ficar algo assim:int[] returnProc(bool vetor[]){mas sempre dá erro nessa linha, acho q só pode ser o retorno, esse int[] está errado? Quote Link to comment Share on other sites More sharing options...
0 Binder Posted May 1, 2012 Report Share Posted May 1, 2012 (edited) A maneira de enviar um vetor para uma função é assim:Envia para função um vetor:int main(){ int vetor[2]; resultado= returnProc(vetor); } Onde eu criei uma variavel chamada "resultado" dentro do main, que recebe o retorno do resultado da função. Recebe vetor na função,pelo que li a respeito tem 3 formas de enviar: 1) Maneira: int returnProc(int vetor[2]){ //logica do problema } 2) Maneira: int returnProc(int vet[]){ //logica do problema } 3) Maneira: Onde se cria um ponteiro para vetor: int returnProc(int *numeros){ //logica do problema }Fonte: http://www.ic.uff.br/~hcgl/passagem_parametro.htm Edited May 1, 2012 by Binder Quote Link to comment Share on other sites More sharing options...
0 bruce845 Posted May 7, 2012 Report Share Posted May 7, 2012 (edited) Olha, apesar do C++ ser mais evoluído que C, ainda contém uns incovenientes do C que precisam um pouco mais da nossa atenção.Existe um incoveniente em C++ em relação ao Java, que tudo alocado deve ser liberado da memóra (note que em C++ não existe o "Garbage Collector").Declarações de array em C++ alocadas dinamicamente (com o uso do operador new) devem ser declaradas desta forma:Exemplo de um array de inteiros:int *vetor = new int[30]; Obs.: Diferentemente do Java, array em C++ não é um objeto, mas uma simples sequência de dados em memória (como no C). O seu método/função, deve retornar um ponteiro da posição inicial do array. No seu exemplo, ficaria assim: int *returnProc(bool *procb){ // Ao invés de int[], coloque int *. int aux1 =0, aux2 = 0; int *resp = new int[2]; // Ao invés de resp[], coloque *resp. ... resp[0] = aux1; resp[1] = aux2; return resp; }Para alguma variável receber o retorno dessa função, esta deve ser declarada com int* (ponteiro de int).Estude um pouco mais sobre ponteiros e matrizes na linguagem C.E será muito bom você postar as suas tentativas aqui, aí nós consertamos :D . Edited May 7, 2012 by bruce845 Quote Link to comment Share on other sites More sharing options...
Question
lorena1601
Olá, estou "convertendo" um algoritmo que fiz em java para c++, em um dos métodos que eu tenho, retorna um int[], mas não consigo fazer o mesmo em c++.. já fiz
alguns testes e até agora só deu erro.. :(
Alguma sugestão?
:mellow:
Link to comment
Share on other sites
4 answers to this question
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.