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

 

 


Tema destacado: Tutorial básico de Quickjs


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  [ERROR VS2008] En dev-c++ me va bien y codeblock = en vs2008 no.
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [ERROR VS2008] En dev-c++ me va bien y codeblock = en vs2008 no.  (Leído 5,237 veces)
anonimo12121


Desconectado Desconectado

Mensajes: 1.813


Ver Perfil WWW
[ERROR VS2008] En dev-c++ me va bien y codeblock = en vs2008 no.
« en: 14 Mayo 2010, 21:44 pm »

aqui va 1 error.

1>c:\documents and settings\usuario1\escritorio\proyectos vs2008 sdl\entidad.h(91) : error C2057: se esperaba una expresión constante
1>c:\documents and settings\usuario1\escritorio\proyectos vs2008 sdl\entidad.h(91) : error C2466: no se puede asignar una matriz de tamaño constante 0
1>c:\documents and settings\usuario1\escritorio\proyectos vs2008 sdl\entidad.h(91) : error C2133: 'salida' : tamaño desconocido


code:
Código
  1. int Centidad::aloadimagen(char *file,int fmin, int fmax){
  2. // AQUI ES EL ERROR
  3.    char salida[strlen(file)];
  4.    for(int i=fmin;i<fmax;i++){
  5.        remlet('-',file,salida,i+1);
  6.        plantilla[i]=IMG_Load(salida);
  7.    }
  8. }

espero que me puedan ayudar ,

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
do-while


Desconectado Desconectado

Mensajes: 1.276


¿Habra que sacarla de paseo?


Ver Perfil
Re: [ERROR VS2008] En dev-c++ me va bien y codeblock = en vs2008 no.
« Respuesta #1 en: 14 Mayo 2010, 22:00 pm »

¡Buenas!

Nunca he utilizado VS, pero por el segundo y tercer error, me da la impresion de que no te deja definir la dimension del vector utilizando strlen, y por el primero, tendrias que usar una constante para definir el tamaño, no una expresion...

¡Saludos!


En línea

- Doctor, confundo los números y los colores.
- Vaya marrón.
- ¿Marrón? ¡Por el culo te la hinco!
anonimo12121


Desconectado Desconectado

Mensajes: 1.813


Ver Perfil WWW
Re: [ERROR VS2008] En dev-c++ me va bien y codeblock = en vs2008 no.
« Respuesta #2 en: 15 Mayo 2010, 10:25 am »

pero por que con otros si?.
en codeblocks a mi amigo le compila y ami en dev-cpp no me a dado ningun problema .
para el numero de caracteres de "char*" usando strlen.


EDITO: e probado a crear un int y darle el valor que devuelve strlen.

pero me salta lo mismo.
« Última modificación: 15 Mayo 2010, 11:24 am por Xafirot » 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
Lambda


Desconectado Desconectado

Mensajes: 371



Ver Perfil WWW
Re: [ERROR VS2008] En dev-c++ me va bien y codeblock = en vs2008 no.
« Respuesta #3 en: 15 Mayo 2010, 15:40 pm »

No se puede hacer eso, es totalmente absurdo mas que nada por que el compilador tiene que saber el tamaño del array en tiempo de compilacion y strlen es una funcion que se ejecuta en tiempo de ejecucion, es imposible que compile en VS o en GCC o cualquier otro compilador almenos que el propio compilador haga algun trapicheo y te convierta esa variable de stack a heap.

Si quieres hacer eso usa memoria dinamica.
En línea

anonimo12121


Desconectado Desconectado

Mensajes: 1.813


Ver Perfil WWW
Re: [ERROR VS2008] En dev-c++ me va bien y codeblock = en vs2008 no.
« Respuesta #4 en: 15 Mayo 2010, 16:15 pm »

entoces que puedo hacer?.
ejemplo de lo que aria mi funcion.
Código
  1.  
  2. int Centidad::aloadimagen(char *file,int fmin, int fmax){
  3. // AQUI ES EL ERROR
  4.    char salida[strlen(file)];
  5.    for(int i=fmin;i<fmax;i++){
  6.        remlet('-',file,salida,i+1);
  7.        plantilla[i]=IMG_Load(salida);
  8.    }
  9. }
  10. aloadimagen("foto",9,12);
  11.  
char*file seria el valor devuelto por strlen seria 5.
el bucle de abajo con una funcion mia llamada remlet "remplazarletra".
hace lo siguiente:

Código
  1. int remlet(char buscar,char* entrada, char* salida,int num){
  2.    char conv[2];
  3.    for(int i=0;i<strlen(entrada);i++){
  4.        if(entrada[i]==buscar){
  5.            strcpy(salida,entrada);
  6.            itoa(num,conv,10);
  7.            if(num<10){
  8.                salida[i+1]='0';
  9.                salida[i+2]=conv[0];
  10.            }
  11.            else {
  12.                salida[i+1]= conv[0];
  13.                salida[i+2]= conv[1];
  14.            }
  15.            return 1;
  16.        }
  17.    }
  18.    return 0;
  19. }

resumiendo lo que quiero es que char salida[] tenga una longitud = a la cadena insertada en char*entrada.

alguna idea?.
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
Lambda


Desconectado Desconectado

Mensajes: 371



Ver Perfil WWW
Re: [ERROR VS2008] En dev-c++ me va bien y codeblock = en vs2008 no.
« Respuesta #5 en: 15 Mayo 2010, 23:24 pm »

usa char* salida = new char[strlen(file)+1];

pero acuerdate de usar delete[] cuando no necesites esa variable por que si no tendras un memory leak :xD
otra cosa que puedes hacer es declarar el buffer con un tamaño fijo que sea "seguro".
En línea

anonimo12121


Desconectado Desconectado

Mensajes: 1.813


Ver Perfil WWW
Re: [ERROR VS2008] En dev-c++ me va bien y codeblock = en vs2008 no.
« Respuesta #6 en: 16 Mayo 2010, 00:01 am »

ok ahora mismo lo pruebo y te digo.
EDITO: me funciono XDDDD. muuuuuuuuuuchas gracias XD ,

aunque despues de esto me salto 1 error raro en otras funcion por ejemplo:

Código
  1. int fun(){
  2. }
  3.  

ERROR : int fun() tiene que devolver un return .

o algo similar , puse return 0. y lo solucciones

EDITO:
PD: se me olvido poner el delete XD


EDITO: CODE que toy haciendo ...  code y exe. code si compilais funcionara "SDL" el exe no se si os funcionara u os ara falta las DLL puesto que no se como crea los exe el VS2008 . tecla "a" para que pege una patada. LINK http://www.4shared.com/file/Tb8P93f7/Proyectos_VS2008_SDL.html

« Última modificación: 16 Mayo 2010, 00:25 am por Xafirot » 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
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines