crazygod 0 Denunciar mensagem Publicado 30 de Março de 2010 Boas pessoal, ca estou eu para vos chatear mais um bocadinho com as minhas duvidas de noob tava eu muito contente a estudar programação, quando derepente, fiquei com uma duvida e não consegui esclarecer... a intenção do seguinte codigo é mostrar o tamanho do array. no array de (char), não tenho dificuldades, mas no array (int) é que ja é pior... #include <iostream> using namespace std; int main(){ char cletras[]="ola eu sou um teste"; char* pletras= cletras; cout << "Array -> " << sizeof(cletras) << endl; cout << "Apontador -> " << sizeof(pletras) << endl; for(int i=0; i<sizeof(cletras)-1; i++) cout << cletras[i]; cout << endl; int inum[]={13,14,15,16,25}; int* pnum= inum; cout << "Array -> " << sizeof(inum) << endl; cout << "Apontador -> " << sizeof(pnum) << endl; for (int i=0; i<sizeof(pnum)-1; i++) cout << pnum[i] << ' '; cout << endl; system("pause"); return 0; } se me disserem como faço para saber o tamanho do array int agradecia. e ja agora o apontador que eu tenho para char, diz me é o espaço ocupado pela string, certo?? Obrigado Partilhar esta mensagem Ligação para a mensagem Partilhar noutros sites
TheDark 0 Denunciar mensagem Publicado 30 de Março de 2010 O operador sizeof devolve o tamanho em bytes do que lhe passares como argumento. Provavelmente, sizeof(inum) está a devolver 20, porque 5 ints * 4 bytes (tamanho ocupado por um inteiro) = 20. Para saberes o número de elementos do array, divides sizeof(inum) por sizeof(int). Não percebi a última pergunta. Se pedires o tamanho do apontador, vai dar-te sempre 4, seja qual for o tipo apontado, e seja qual for o objecto apontado. Um apontador tem sempre 4 bytes em arquitecturas de 32 bit. Desaparecido. Partilhar esta mensagem Ligação para a mensagem Partilhar noutros sites
crazygod 0 Denunciar mensagem Publicado 30 de Março de 2010 Obrigado pela resposta tão rapida, agora quando chegar a casa vou analisar isso melhor, mas acho que já percebi Obrigado edit: já testei...Muito Obrigado ficou assim: #include <iostream> using namespace std; int main(){ char cletras[]="ola eu sou um teste"; char* pletras= cletras; cout << "Array -> " << sizeof(cletras) << endl; cout << "Apontador -> " << sizeof(pletras) << endl; for(int i=0; i<sizeof(cletras)-1; i++) cout << cletras[i]; cout << endl; int inum[]={13,14,15,16,25,30,40,50}; int* pnum= inum; cout << "Array -> " << sizeof(inum)/sizeof(int) << endl; cout << "Apontador -> " << sizeof(pnum) << endl; for (int i=0; i<sizeof(inum)/sizeof(int); i++) cout << inum[i] << ' '; cout << endl; system("pause"); return 0; } [\code] Partilhar esta mensagem Ligação para a mensagem Partilhar noutros sites