Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - amchacon

#471
Cita de: javiherro en 10 Diciembre 2013, 16:40 PM
A qué te refieres con los debug symbols?

Gracias por la respuesta!
Quiero decir que la compiles en modo "debug".
#472
La DLL debería compilarse con los debugs symbols, al igual que el exe claro.
#473
El error se debe a:

scanf("%s", &nuevoDato.mes);

Estás metiendo un texto entero en la dirreción de la variable char*, pero claro solo tiene un byte asi que el resto de caracteres cogen otras zonas de la memoria, probablemente estes modificando otras variables sin darte cuenta... Que haya llegado a hacer segmentation fault ha sido lo mejor, si no estarías como un loco mirando porque las variables cambian de valor de repente.

Prueba a reservar memoria estática previa:
struct dato
{
  char mes[300];
  struct fecha* r;
}t ;


Dado que un array se representa por la dirreción de su primer elemento, no necesitas el operador &:
scanf("%s",nuevoDato.mes);

Aunque yo haría:

fscanf(nuevoDato.mes,299,stdin); // stdin simboliza el teclado

Así te asegura que no se lean más de 300 caracteres.
#474
Programación C/C++ / Re: Diseño de Ensamblador
10 Diciembre 2013, 12:21 PM
Cita de: m@o_614 en 10 Diciembre 2013, 02:03 AMEs que yo pensé que la mejor opción sería ir guardando línea por línea en un arreglo, y después hacer las validaciones de las palabras que están en los arreglos.
Pero entonces pierdes la ventaja de la velocidad al leerlo línea a línea, para eso usas el primer método y te ahorras el gasto de memoria.

Hay muchas formas de volcar un archivo, te lo pongo como lo haría yo (volcandolo en un stringstream y listo):

Código (cpp) [Seleccionar]
#include <iostream>
#include <fstream>
#include <sstream>
using namespace std;

int main()
{
   ifstream archivo("main.cpp");
   stringstream archivo2;

   archivo2<<archivo.rdbuf(); // volcar contenido en stream

   cout<<archivo2.str(); // .str() devuelve el string que se encuentra almacenado
   return 0;
}


http://imageshack.us/photo/my-images/801/f04f.png/

Como veras en la imagen, he volcado el archivo del código en el stringstream.

La ventaja que tiene usar un stringstream, esque puedes seguir usando las funciones de getline() y el operador <<, lo que te hace el trabajo más comodo. Si lo volcases en un char*/string a secas tendrías que detectar los saltos de línea a mano.
#475
El segundo constructor es muy fácil, simplemente sigue tu instinto:

Código (cpp) [Seleccionar]
class triangulo
{     private:
              float d1,d2,d3;
     public:
              triangulo();
              triangulo(int c1,int c2,int c3,int c4); // sobrecargando constructor
              float perimetro(float d1,float d2,float d3);
              ~triangulo(){cout<<"Se ejecuta el DESTRUCTOR";}

};

triangulo::triangulo() //CONSTRUCTOR
{ cout<<"inicia el constructor"<<endl;
  d1=0;
  d2=0;
  d3=0;
}

triangulo::triangulo(int c1,int c2,int c3,int c4)
{
  d1=c1;
  d2=c2;
  d3=c3;
}


Pon dos cin.get() al final, el primero será solo para comerse el buffer.
#476
Programación C/C++ / Re: Diseño de Ensamblador
9 Diciembre 2013, 17:59 PM
La primera le llamo yo "streaming" y tiene la ventaja que te sirve para cualquier tamaño de archivo.

La segunda es más rápida, ya que vuelcas el archivo en la memoria y trabajas todo el tiempo desde allí. Claro que esto funciona si el archivo es de unos kb, no vas a volcar un archivo de 2gb en la memoria.

Las dos tienen la misma dificultad de implementación, yo me quedaría con la primera.
#477
Cita de: SrCooper en  6 Diciembre 2013, 22:53 PMRespecto a SFML, te agradecería que me dijeses algunas ventajas que la hagan mejor que SDL a tu modo de ver, porque he estado informandome por ahí y estoy algo indeciso respecto a cambiar o no.
A diferencia de SDL, está hecho en C++. Aunque también tiene versiones para C, Pyhton, Ruby...

Pero la mayor ventaja esque triplica las funciones de SDL. Tiene funciones para casi todo. No mucho tiempo pero el código que tú pides no es díficil.

#478
Sin mirarme librerías ni nada, te lo puedes hacer tu mismo fácilmente.

Código (cpp) [Seleccionar]
int Convertiraentero(vector<bool> &dato)
{
  int numero = 0;
  int multiplicador = 1;
 
  for (int i = dato.size()-1; i >=0;i--)
  {
       numero += (dato[i]*multiplicador);
       multiplicador *= 2;
  }
  return numero;
}


Suponiendo que el vector simboliza un número binario natural y está ordenado de mayor a menor.
#479
El int y los dos bool se pueden guardar directamente.

Para los vectores, tendrás que recorrer el vector con un for y ir guardando los elementos uno a uno.
#480
Cita de: @shellroot en  6 Diciembre 2013, 20:48 PM
o.O!
La potenciación existe en cualquier lenguaje  :silbar:
Pues pruebalo, seguro que te compila :silbar:

Las operaciones que definen los lenguajes son las que puede hacer el procesador de forma nativa (suma, resta, multiplicación, división y modulo). El resto de operaciones matemáticas no se pueden realizar de forma nativa en la mayoría de los procesadores (domésticos por lo menos).

Cita de: ivancea96 en  6 Diciembre 2013, 20:49 PM
amchacon, puedo llamarte Dennis? :D
¿Quien es Dennis? xD

EDITO: Ah demonios, Dennie Ritchie. Lo dices por mi avatar xD