lorena1601 Postado Maio 1, 2012 Denunciar Share Postado Maio 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: Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Binder Postado Maio 1, 2012 Denunciar Share Postado Maio 1, 2012 Ola, poste seu código ai, para facilitar a compreensão.... Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 lorena1601 Postado Maio 1, 2012 Autor Denunciar Share Postado Maio 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? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Binder Postado Maio 1, 2012 Denunciar Share Postado Maio 1, 2012 (editado) 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 Editado Maio 1, 2012 por Binder Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 bruce845 Postado Maio 7, 2012 Denunciar Share Postado Maio 7, 2012 (editado) 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 . Editado Maio 7, 2012 por bruce845 Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
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 para o comentário
Compartilhar em outros sites
4 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.