Título: Error al ejecutar un programa en C que he compilado [Windows 8] Publicado por: Schrödinger en 3 Abril 2013, 18:17 pm Pues he repasado el código unas cuantas veces y creo que está perfecto, no obstante en cuanto ejecuto el programa ejecutable, bien desde consola o haciendo doble click, me sale la ventanita de "ha dejado de funcionar". Os dejo el código, pero yo creo que debe ser algún tema de compatibilidad o algo..
Código
Editado: añadido el coloreado de código. Título: Re: Error al ejecutar un programa en C que he compilado [Windows 8] Publicado por: 85 en 4 Abril 2013, 02:54 am lo primero que se requiere es que si podés usar las etiquetas de código, y las de c++ preferentemente:
Citar code=cpp Es para mejor lectura del texto, después me vi obligado a mirar algo sobre win8 porque no lo tengo XD http://www.softwareok.com/?seite=faq-Windows-8&faq=3 http://conocimientoadictivo.blogspot.com/2012/10/informacion-tecnica-windows-8.html Pero como dijiste, tu código parece no salirse de lo standard , podés decirnos algunos datos más sobre el compilador, las opciones de compilación o las opciones del proyecto en general, si tu sistema es x32 o x64, etc Más información así la gente se anima a responderte, y lo de las etiquetas. hasta luego Título: Re: Error al ejecutar un programa en C que he compilado [Windows 8] Publicado por: OmarHack en 4 Abril 2013, 04:37 am Ejecutar como administrador?
Título: Re: Error al ejecutar un programa en C que he compilado [Windows 8] Publicado por: Schrödinger en 4 Abril 2013, 20:10 pm Siento lo de la etiqueta para código, la usaré a partir de ahora. Tengo windows 8 x64, compilo y ejecuto desde consola como administrador utilizando el gcc con el comando
gcc file.c -o file.exe He probado con otros programas hechos por mi y funcionan, lo cual me lleva a pensar que es un error de código.. pero compila perfectamente sin ningñun warning y lo he repasado varias veces :S Título: Re: Error al ejecutar un programa en C que he compilado [Windows 8] Publicado por: Schrödinger en 5 Abril 2013, 18:00 pm He probado a compilar y ejecutar el mismo código en el pc de un amigo que usa linus (x64 ) y ha funcionado sin problemas. Así que el problema es del puto windows. Creo recordar que a veces había problemas porque había que especificar a la hora de compilar que era un programa para ejecutar desde consola pero no sé si me lo acabo de inventar o cómo hacerlo :-(
Instalaría Linux en arranque dual pero ya lo he intentado y es imposible, no se que pasa, si es el windows 8 o mi ordenador pero no hay manera, y he probado con varias distros, desde usb, desde cd, entrando a un live... nada. Título: Re: Error al ejecutar un programa en C que he compilado [Windows 8] Publicado por: rir3760 en 5 Abril 2013, 18:29 pm El problema puede deberse a la declaración del array "v" en la función principal:
Código
Intenta colocando esa declaracion fuera de la función, por ejemplo junto a la variable "fout": Código
Otra opción, si se necesita mantener al objeto como local, es reservando el espacio en tiempo de ejecución con malloc, calloc o realloc. Un saludo Título: Re: Error al ejecutar un programa en C que he compilado [Windows 8] Publicado por: Schrödinger en 5 Abril 2013, 18:44 pm Eso no creo que sea porque el define es una orden al preprocesador con lo que realmente da igual donde lo escriba se ejecuta antes de compilar con lo que el espacio para el array me lo reserva de antemano, ¿me equivoco?
Además me interesa v como variable local, intento trabajar lo menos posible con variables globales. Lo mejor de todo es que como he dicho antes, en linux puedo compilarlo con gcc y ejecutarlo sin ningún problema. Con lo que parece que el problema radica en hacerlo en windows 8 :S Edición: He probado y funciona!! Lo cual me lleva a pensar que efectivamente el problema es que estaba escribiendo en vete tu a saber que dirección de memoria y por eso daba error. Lo que no sé es porque como lo tenía yo no es correcto. ¿Podrías intentar explicármelo? Título: Re: Error al ejecutar un programa en C que he compilado [Windows 8] Publicado por: 85 en 5 Abril 2013, 21:15 pm igualmente fijate, poné tu código en este compilador online de C/C++ y fijate que hay varios problemas
http://www.compileonline.com/compile_cpp_online.php Citar Compiling the source code.... $g++ /tmp/136516399727456.cpp -o /tmp/136516399727456 -lm 2>&1 /tmp/136516399727456.cpp: In function 'int main()': /tmp/136516399727456.cpp:29: error: incompatible types in assignment of 'double' to 'double [1000000]' /tmp/136516399727456.cpp: In function 'void Histogram(double*, double*, int, int, double*, double*, double*)': /tmp/136516399727456.cpp:73: error: invalid operands of types 'double*' and 'double' to binary 'operator<' /tmp/136516399727456.cpp:73: error: cannot convert 'double*' to 'double' in assignment /tmp/136516399727456.cpp:74: error: invalid operands of types 'double*' and 'double' to binary 'operator>' /tmp/136516399727456.cpp:74: error: cannot convert 'double*' to 'double' in assignment /tmp/136516399727456.cpp:86: error: invalid operands of types 'double*' and 'double' to binary 'operator-' /tmp/136516399727456.cpp:100: error: invalid operands of types 'double*' and 'double' to binary 'operator*' /tmp/136516399727456.cpp:100: error: in evaluation of 'operator*=(double*, double)' fijate si los podés arreglar para que al menos se compile en el compilador online así te podemos ayudar mejor ;D. Título: Re: Error al ejecutar un programa en C que he compilado [Windows 8] Publicado por: WHK en 5 Abril 2013, 21:24 pm Y si intentas utilizar visual c++ para que el IDE te diga donde te estas equibocando?
En algún torrent debe andar el visual studio 2012. Título: Re: Error al ejecutar un programa en C que he compilado [Windows 8] Publicado por: rir3760 en 6 Abril 2013, 04:26 am Lo que no sé es porque como lo tenía yo no es correcto. ¿Podrías intentar explicármelo? Tienes problemas con esa variable porque depende del compilador el tamaño del área donde se almacenan las variables locales (stack o pila).Para evitarlo debes cambiar la clase de almacenamiento de la variable de automático (utiliza la pila) a estático (utiliza el montículo o heap). Para estos temas (heap y stack) lo mejor es revisar sitios con información de calidad como wikipedia. Ese cambio se puede realizar de tres formas: 1) La ya mencionada, colocando la declaración fuera de toda función. 2) Utilizando un puntero y reservando el espacio de memoria mediante malloc, calloc o realloc. 3) Declarando el array dentro de la función y calificándolo con static. igualmente fijate, poné tu código en este compilador online de C/C++ y fijate que hay varios problemas Lo que pasa es que lo estas compilando como C++, si lo compilas como C no se presentan esos errores (pero se presentan otros: cambiar la definición de main y la primera llamada a printf).Un saludo Título: Re: Error al ejecutar un programa en C que he compilado [Windows 8] Publicado por: x64core en 6 Abril 2013, 10:37 am Hola
En Windows el sistema reversa por defecto 1 MB del heap para cada hilo que es creado en un proceso obviamente el tamaño que se quiere reservar es mayor por eso se genera una excepción ( el compilador agrega una función para comprobar si el tamaño asignado al hilo es suficiente ). con VC simplemente se arregla agrenado una directiva, pero creo que no utilizas VC. |