elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Introducción a Git (Primera Parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  [C++][AYUDA] problema con sizeof
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [C++][AYUDA] problema con sizeof  (Leído 3,946 veces)
anonimo12121


Desconectado Desconectado

Mensajes: 1.813


Ver Perfil WWW
[C++][AYUDA] problema con sizeof
« en: 4 Mayo 2010, 16:05 pm »

hola.
Mi problema es que pongo un sizeof en una funcion que tiene de parametro 1 char *. pero no me dice los bytes que tiene la cadena que le meto.
aqui el code.

Código
  1. #include <iostream>
  2. using namespace std;
  3. int fake=0;
  4. void remlet(char buscar,char* entrada, char* salida,int num){
  5.  
  6.    char conv[2];
  7.    //char salida[sizeof(entrada)];
  8.    strcpy(salida,entrada);
  9.    //aqui es con el sizeof
  10.    for(int i=0;i< sizeof entrada;i++){
  11.        // esta variable la creado para saber cuantas veces hace el bucle y me sale 4. creo que el problema en que la variable es 1 puntero .
  12.        fake++;
  13.        if(entrada[i]==buscar){
  14.            itoa(num,conv,10);
  15.            if(conv[0]=='0'){
  16.                salida[i+1]='0';
  17.                salida[i+2]=conv[0];
  18.            }
  19.            else {
  20.                salida[i+1]= conv[0];
  21.                salida[i+2]= conv[1];
  22.            }
  23.            break;
  24.        }
  25.    }
  26. }
  27. char frase[]="personaje-01";
  28. char frase2[]="personaje-44";
  29. int main(int argc,char *argv[]){
  30.  
  31.    remlet('-', frase,frase2,22);
  32.    //a(frase,frase2);
  33.    cout << fake;
  34.  
  35.    cin.get();
  36.  
  37.  
  38. }
  39.  


En línea

Página para ganar Bitcoins y Dinero: http://earnbit.hol.es/
Video de YouTube con Hack para el LoL: http://adf.ly/5033746/youtube-lolemuhack
Si quieres ganar dinero con adfly entra y registrate aquí -> http://adf.ly/?id=5033746
Littlehorse
All the world's a stage
Moderador
***
Desconectado Desconectado

Mensajes: 2.714


Nie Dam Sie


Ver Perfil WWW
Re: [C++][AYUDA] problema con sizeof
« Respuesta #1 en: 4 Mayo 2010, 16:18 pm »

En ese contexto, sizeof te da el tamaño del puntero (4 bytes). Utiliza strlen.


En línea

An expert is a man who has made all the mistakes which can be made, in a very narrow field.
anonimo12121


Desconectado Desconectado

Mensajes: 1.813


Ver Perfil WWW
Re: [C++][AYUDA] problema con sizeof
« Respuesta #2 en: 4 Mayo 2010, 16:32 pm »

ya se eso de strlen pero ya que estoy quiero encontrar algun soluccion para esto.
En línea

Página para ganar Bitcoins y Dinero: http://earnbit.hol.es/
Video de YouTube con Hack para el LoL: http://adf.ly/5033746/youtube-lolemuhack
Si quieres ganar dinero con adfly entra y registrate aquí -> http://adf.ly/?id=5033746
Littlehorse
All the world's a stage
Moderador
***
Desconectado Desconectado

Mensajes: 2.714


Nie Dam Sie


Ver Perfil WWW
Re: [C++][AYUDA] problema con sizeof
« Respuesta #3 en: 4 Mayo 2010, 16:38 pm »

No hay solución. sizeof realiza su tarea en tiempo de compilación. No puede adivinar cual es el tamaño de la cadena en ese contexto, ya que lo que le estas pasando es un puntero.

Si declaras cadenas a nivel global, entonces úsalas. Cualquier contenido declarado a nivel global puede utilizarse en el contexto de cualquier función, por lo tanto no tiene mucho sentido pasarlas como parámetro en el ejemplo que pusiste. Si utilizas las cadenas globales, sizeof te devolverá lo que esperas, si usas un puntero, sizeof te devolverá el tamaño del puntero.
De la forma que lo quieres hacer no hay forma de solucionarlo.

Evita en lo posible las declaraciones globales al menos que realmente las necesites. Aunque como solo están una linea arriba del main, creo que te equivocaste en la declaración.

Saludos
En línea

An expert is a man who has made all the mistakes which can be made, in a very narrow field.
anonimo12121


Desconectado Desconectado

Mensajes: 1.813


Ver Perfil WWW
Re: [C++][AYUDA] problema con sizeof
« Respuesta #4 en: 4 Mayo 2010, 17:12 pm »

e pensado hacer lo siguiente
crear un variable en la funcion char a[]
hay copiar el contenido del puntero y sacar el valor ahora lo provare.

saludos.
En línea

Página para ganar Bitcoins y Dinero: http://earnbit.hol.es/
Video de YouTube con Hack para el LoL: http://adf.ly/5033746/youtube-lolemuhack
Si quieres ganar dinero con adfly entra y registrate aquí -> http://adf.ly/?id=5033746
Littlehorse
All the world's a stage
Moderador
***
Desconectado Desconectado

Mensajes: 2.714


Nie Dam Sie


Ver Perfil WWW
Re: [C++][AYUDA] problema con sizeof
« Respuesta #5 en: 4 Mayo 2010, 17:31 pm »

No tiene sentido, pero en fin, si te pusiste como meta usar sizeof, haya vos  ;D

Saludos!
En línea

An expert is a man who has made all the mistakes which can be made, in a very narrow field.
anonimo12121


Desconectado Desconectado

Mensajes: 1.813


Ver Perfil WWW
Re: [C++][AYUDA] problema con sizeof
« Respuesta #6 en: 4 Mayo 2010, 17:39 pm »

por que no tiene sentido?
En línea

Página para ganar Bitcoins y Dinero: http://earnbit.hol.es/
Video de YouTube con Hack para el LoL: http://adf.ly/5033746/youtube-lolemuhack
Si quieres ganar dinero con adfly entra y registrate aquí -> http://adf.ly/?id=5033746
Littlehorse
All the world's a stage
Moderador
***
Desconectado Desconectado

Mensajes: 2.714


Nie Dam Sie


Ver Perfil WWW
Re: [C++][AYUDA] problema con sizeof
« Respuesta #7 en: 4 Mayo 2010, 17:42 pm »

Porque no tiene sentido hacer una copia para luego usar sizeof. strlen te sirve perfectamente y puedes usarlo directamente con el char*.
En línea

An expert is a man who has made all the mistakes which can be made, in a very narrow field.
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
La broma del sizeof(mac) « 1 2 »
Programación C/C++
Kaxperday 11 4,784 Último mensaje 3 Octubre 2015, 19:05 pm
por ivancea96
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines