Caros,
Estou criando um programa em C++ em que o usuário insere um número inteiro qualquer, este chama uma função que retorna a quantidade de divisores e um vetor contendo tais divisores. Daí o problema, a quantidade de divisores só será conhecida após o cálculo o que definirá o tamanho do vetor de retorno, então não estou conseguindo criar uma lógica para isso.
#include <iostream>
using namespace std;
int divisores(int inteiro,int *divs)
{
int i,j=0,qtd=0;
for (i=1; i<=inteiro;i++)
if (inteiro%i==0) qtd++;
vector <int> *divs;
for (i=1; i<=inteiro;i++)
if (inteiro%i==0)
{
cout<<i<<"\n";
divs.push_back(i);
}
for (int i=0; i<qtd; i++)
cout << "\n" << divs[i];
return qtd;
}
int main ()
{
int inteiro, qtd;
vector <int> divs;
cout << "Nº inteiro: ";
cin >> inteiro;
qtd = divisores(inteiro,divs);
for (int i=0; i<qtd; i++)
cout << divs[i] <<"\n";
}
Tentei com new int conforme a parte comentada, mas não deu certo, depois olhando em um outro post aqui eu vi o vector e apliquei, mas ainda assim sem sucesso, ele me retorna (se não me engano) lixo de memória.
Grato.