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 - eferion

#1141
Cita de: 0xDani en 17 Julio 2013, 14:49 PM
A ver, si le das un identificador a la variable, es porque la has declarado así:

Código (asm) [Seleccionar]

num1: dd 5
num2: dd 7
result: dd 0


De esta forma, tanto num1, como num2 como result son punteros, y hay que desreferenciarlos para acceder a la variable.

Saludos.


Vale, ya entendí.

Cuando escribí el código estaba pensando en algo más básico, tal que...

Código (asm) [Seleccionar]


num1 WORD 124h
num2 WORD 3120h
result WORD 0h

; ...

mov ax, num1
mov bx, num2
add ax, bx
mov result, ax


Por eso no me cuadraba lo de desreferenciar la memoria.
#1142
Cita de: aguml en 17 Julio 2013, 11:12 AM
Pues yo tenia entendido que un vector y una matriz son exactamente lo mismo  :huh:

Un vector tiene una sola dimensión y una matriz tiene dos... dado que la memoria es lineal no pueden ser iguales.
#1143
Programación C/C++ / Re: scanf y gets
17 Julio 2013, 10:59 AM
*arreglo[10] es un vector de punteros... equivalente ( que no igual ) a **arreglo, es decir, "char**"

si tu en una instrucción pones "nombre + i"... el tipo resultante sigue siendo char**, que es incompatible con el que espera gets ( char* )

Para resolver eso tienes que quitar un nivel de indirección en el puntero, es decir, pasar de un puntero doble a un puntero simple.

¿De qué manera has definido la variable "arreglo"?

Sin más información es complicado darte una explicación más acertada.
#1144
Cita de: 0xDani en 17 Julio 2013, 00:09 AM
Entiendo que era un trozo del código, una cosa es que el código no esté completo y otra es que lo que pongas no esté bien.

De todas formas, ya que lo dije no estaría de más editar el mensaje... digo yo que cuanto mejor esté, pues mejor no?

He estado dando vueltas a lo de los corchetes y hasta donde llego eso es para manejar punteros, me equivoco?

Yo no he usado punteros sino variables normales luego no veo que cabida tienen los corchetes... si me equivoco házmelo saber que hace algunos añitos que no toco ensamblador.

Un saludo.
#1145
Programación C/C++ / Re: Duda con sockets C
17 Julio 2013, 08:03 AM
deberías detectar cuando un cliente se va... por ejemplo con un timeout... y en ese caso eliminar al cliente de la lista.

La mecánica para saber si un cliente sigue conectado o no varía en función de si usas TCP o UDP...

Por ejemplo te recomendaría es que los puertos los abrieses en el servidor como no bloqueantes y verificases antes de leer si el cliente ha enviado datos nuevos o no... en caso de no enviar datos nuevos y si salta el timeout borras la conexión.

Pero esto es así por encima... sin conocer el código es complicado dar más detalles.
#1146
Cita de: 0xDani en 14 Julio 2013, 00:03 AM
@eferion, en el código ensamblador no te olvides de desreferenciar la memoria usando los brackets ('[', ']').

Era un ejemplo rápido... también me podrías haber dicho que no reservé espacio para la pila ni inicialicé correctamente la aplicación XD
#1147
typedef te permite asignar un alias... sirve para mejorar la legibilidad del código.

typedef unsigned char uchar;

Con esta línea defines un tipo nuevo "uchar" que se corresponde con un "unsigned char"... pero más corto y legible. Hacerlo con estructuras te permite omitir la palabra "struct" cada vez que quieras definir una variable o puntero a una estructura.
#1148
Tienes que incrementar las variables i,j en cada iteración para recorrer los dos vectores.

En mi humilde opinión yo usaría los buches while para situaciones en las que no puedo saber cuantas repeticiones va a tener un bucle.

Para bucles con un número conocido de repeticiones ( en este caso el tamaño del vector ), es mejor usar bucles for, ya que así es más difícil que se te pase incrementar la variable del índice.
#1149
No creo que sea necesario decir que para acceder a los miembros de una clase necesitas un objeto ya creado de esa clase... salvo que sea un miembro estático, pero ese no es tu caso.
#1150
Una clase, como norma general, tiene esta forma:

Código (cpp) [Seleccionar]

class Clase
{
  public:
    // ...

  protected:
    // ...

  private:
    // ...
};


Los elementos que están en private son accesibles únicamente por la propia clase. Aquí suelen ir las variables internas de la clase.

Los elementos de la parte protected son accesibles por la propia clase y por las clases que hereden de ésta... para el resto no es información accesible.

Los elementos de la parte public son accesibles por todos.

Dicho esto, para acceder a cualquier miembro desde fuera de la clase tienes que utilizar bien el operador '.', bien el operador '->', dependiendo de si a la clase accedes de una forma estática o si es un puntero.

Código (cpp) [Seleccionar]

class Clase
{
  // ...

  public:
    void funcion( );

  // ...
};

Clase clase1;
Clase* puntero_clase1 = &clase1;

clase1.funcion( );
puntero_clase->funcion( );