Ir para conteúdo

POWERED BY:

Arquivado

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

José Enésio

Descobrir tamanho de variável

Recommended Posts

Olá to precisando de uma ajuda;

Preciso saber como descobrir o tamanho de um ponteiro em runtime é o seguinte: eu vou montar uma função que vai contar quantos elementos tem uma array ou uma string por exemplo, mas pode ser passada qualquer string pode ter 10 ou pode ter 30 elementos, e é bem provável que seja definida com new char[dadodefinidoporusuario]; por exemplo. Eu sei que tem o sizeof só que essa função é compile-time e portanto só vai pegar o tamanho que o compilador ver e não o tamanho que o usuário vai criar. Eu preciso saber o tamanho da array na hora que roda a função sabe!

Alguém aí sabe?

Compartilhar este post


Link para o post
Compartilhar em outros sites

olhe um exemplo, veja c é isso q qr:

 

#include <iostream>
using namespace std;
int main ()
{
  int numTests;
  cout << "Enter the number of test scores:";
  cin >> numTests;
  int * iPtr = new int[numTests];		   //colocamos um ponteiro no inicio da memória dinâmica
  for (int i = 0; i < numTests; i++)
  {
	 cout << "Enter test score #" << i + 1 << " : ";
	 cin >> iPtr[i];
  }
  for (int i = 0; i < numTests; i++)
	 cout << "Test score #" << i + 1 << " is "<< iPtr[i] << endl;
  delete [] iPtr;
  system ("pause");
  return 0;
}
Fonte

Compartilhar este post


Link para o post
Compartilhar em outros sites

olhe um exemplo, veja c é isso q qr:

 

#include <iostream>
using namespace std;
int main ()
{
  int numTests;
  cout << "Enter the number of test scores:";
  cin >> numTests;
  int * iPtr = new int[numTests];		   //colocamos um ponteiro no inicio da memória dinâmica
  for (int i = 0; i < numTests; i++)
  {
	 cout << "Enter test score #" << i + 1 << " : ";
	 cin >> iPtr[i];
  }
  for (int i = 0; i < numTests; i++)
	 cout << "Test score #" << i + 1 << " is "<< iPtr[i] << endl;
  delete [] iPtr;
  system ("pause");
  return 0;
}
Fonte

 

Quase isso, o problema é que eu não sei o tamanho da variável. Eu gostaria que a função descobrisse:

 

#include <iostream>
using namespace std;

int descobreTamanho(int* array){
?????
}
int main(){
int numero;
cin >> numero;
int* array = new int[numero];
cout << "Voce obteve uma array de " << descobreTamanho(array) << " elementos";
system("pause");
return 0;
}

Nesse código pode parecer que não, que eu sei sim mas quando eu for usar eu não vou saber.

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.