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ú

Temas - samur88

#1
PHP / ¿Es esta expresión regular correcta?
8 Febrero 2012, 17:36 PM
Hola buenas, he creado la siguiente expresión regulara para validar correos dadas unas referencias.
La he probado y parece cumplir con todo, pero en un momento el script se me watufeo, y parecía darme tan solo 0, como si el patrón insertado no fuera valido, ahora no me fió si estoy cometiendo algún fallo de sintaxis en dicho patrón.

Si alguien puede echarle un vistazo y decirme si es correcta la expresión o no, lo agradecería.

Código (php) [Seleccionar]
/^(?=^(\w+[.\-+_]?\w+)+(\@{1}(\w+[.\-]?\w+)+)(\.{1}[a-z]{2,4})$)[\w.+_\-]{3,6}[@\w.\-]{1,13}[a-z]{2,4}$/

Un saludo.
#2
PHP / Problema con expresión regular PCRE
6 Febrero 2012, 14:50 PM
Hola buenas, a ver si podéis echarme una mano con el siguiente problema que tengo:

Estoy usando expresiones regulares PCRE para validar un correo:
En la primera parte antes de la arroba, necesito hacer lo siguiente y no se como hacerlo, quiero que el máximo número de caracteres de la parte local del correo (antes de la arroba) sean 63 como máximos, 1 como mínimo, pero quiero que esos 63 caracteres, sean letras, empiecen por letras, terminen por letras, y entre medios pueda llevar un símbolo de los especificados en la clase carácter pero no dos símbolos juntos.

Dejo el código a continuación:
Código (php) [Seleccionar]

$test = preg_match('/^[\w+(\_\-\.\+)?\w+]{1,63}\@{1}(\w+[\.\-]?\w+)+\.{1}[a-z]{2,4}$/','holaacvcv3@bba-sfd-dfd.com');

La parte a tocar del patrón sería la que se encuentra antes de la arroba, es decir:

Código (php) [Seleccionar]
[\w+(\_\-\.\+)?\w+]{1,63}

Eso no me funciona, ya que me valida cuando hay dos signos juntos.

Un saludo y gracias por todo.
#3
Hardware / Problema con la placa base.
26 Septiembre 2011, 23:11 PM
Hola buenas, tengo un problema con mi ordenador, os expongo mas o menos lo que llevo hasta ahora experimentado para ver is podéis ayudarme.

Mi placa base es una Gigabyte MA790X-DS4 se escuchan pitidos largos que no cesan, el manual dice que se debe a que la tarjeta grafica no esta bien insertada, pero yo la he sacado y la he insertado varias veces y sin efecto, la cambie de slot y lo mismo.

Entonces la deje en ese mismo slot y cambie la ram de sitiio y el ordenador arranco, pero una vez en Windows se me colgo al reiniciar le volvía a pasar lo de los pitidos.

¿A que puede ser debido?

Un saludo.
#4
Disculpad las molestias pero tengo el siguiente error:
He leído en este foro las cosas que no se deben hacer al programar en C, una de ellas era utilizar funciones como scanf que no tienen limite de caracteres insertados, para ello el tutorial proponer fgets, otras de las cosas sobre las que habla el manual es sobre el uso de fflush(stdin) que aunque la gente lo use para una cosa no sirve para eso, ya que este limpia el buffer de salida y no el de entrada.

El caso es que al usar fgets no me deja introducir los datos, ya que salta directamente a la siguiente linea, al poner fflush(studin) se soluciona pero eso no me vale, yo quiero saber por que es esto y una forma segura de solucionarlo y no con fflush(studin) y sus comportamientos caóticos.

El fragmento de código es este:

En main defino estas dos variables:                       
char tempnum;
int dni = 0;

                       
case 'c': case 'C':
                        printf("Introduzca el dni del medico a buscar: ");
                        fgets(tempnum,11,stdin);
                        if (tempnum[strlen(tempnum)-1] == '\n')
                           tempnum[strlen(tempnum)-1] = '\0';
                        sscanf(tempnum,"%d",&dni);
                        search_listM(primero,dni);
                        printf("Pulse una tecla para continuar.");
                        getchar();
                        break;


Un saludo.
#5
Saludos.
Una duda que me ha surgido y no consigo resolver, quiero que una función devuelva un 1 en caso de que se haya hecho todo correctamente o un 0 en caso de error, pero a su vez esa función devolverá un puntero de estructura, ¿como puedo solucionar esto? ya que si pongo "return 1" por ejemplo me da error en la conversión de datos.

Un saludo.
#6
Hola, tengo la siguiente duda:

En una funcion convierto los punteros void según lo necesite, es decir según el que le pase, lo que no se si es esto es una practica aceptada en C, compilar y funcionar funciona pero no se si debe hacer o no, o hacer esto puede acarrear fallos en algunos programas.
Me gustaría saber si es algo así como una practica que se puede hacer pero que debe evitarse en el mayor de los casos.

Esta es la función, lo que hago es convertir al tipo "medicos" o "pacientes" dependiendo de si "opc" es 0 u 1.
Al hacer la llamada solo el puntero que le pase a la función puede ser tanto del tipo
"medicos" como del "pacientes".
bool val_dni(void *primero,int dni,bool opc){
    medicos *auxM;
    pacientes *auxP;
    int m = 0;
    int p = 0;
    /* 0 para medicos, 1 para pacientes.
       0 si no existe, 1 si existe.   
    */
   
    if(opc == 1){
               
           auxP = (pacientes *)primero;
           while(auxP != NULL){
                        if(auxP->dni == dni){ return 1; }
                        auxP = auxP->next;
                     }
           return 0;
    }else{
          auxM = (medicos *)primero;
          while(auxM != NULL){
                        if(auxM->dni == dni){return 1; }
                        auxM = auxM->next;
                     }
          return 0;
    }
}


Un saludo.
#7
Hola buenas.

Tengo una duda, según tengo entendido el uso del break en C esta obsoleto, pero sin embargo tengo un while donde lo tengo que usar por fuerza, quiero saber si el problema es mio, es decir que estoy haciendo algo mal y ese break se puede sustituir por otra cosa, o es que en realidad hay casos donde el uso del break es esencial.

La estructura que uso ahora es esta:
while(1) {
if(feof(fp)){break;}
...
}


Ya que si uso esto:
while(!feof(fp)){
....
}

me lee una vez de mas el archivo, es decir es como si se ejecutara el bucle una vez mas a lo que quiero..

Un saludo.
#8
Hola buenas.

Tengo el siguiente problema que no consigo resolver y por mas que busco en el foro y en Internet no encuentro la forma de solucionarlo.

Tengo una lista en un fichero que previamente he insertado con fwrite, lo que quiero hacer es leer la lista de ese fichero con fseek y cargarla en una lista auxiliar para que el programa trabaje con ella (por ejemplo insertar datos) luego volvere a escribir el fichero entero y cada vez que quiera escribir en esa lista, la cargare en una auxiliar y trabajare con ella para volverla a guardar en el programa.

La función que he hecho para esto, es la siguiente:


medicos * read_fic(void){
FILE *fp;
medicos *aux,aux2,*first;
fp = fopen("medicos.bin","r+b");
fseek (fp, 0L, SEEK_SET);
first = NULL;

do{
   fread(&aux2,sizeof(medicos),1,fp);
   aux = (medicos *)malloc(sizeof(medicos));
   
   if(first == NULL){first = aux;}
   aux->dni = aux2.dni;
   aux->fecha = aux2.fecha;
   strcpy(aux->nombre,aux2.nombre);
   strcpy(aux->apellidos,aux2.apellidos);
   
   /* sacar datos de una estructura dentro de una lista dentro de un fichero */
 
   strcpy(aux->direccion.calle,aux2.direccion.calle);
   aux->direccion.bloque = aux2.direccion.bloque;
   aux->direccion.numero = aux2.direccion.numero;
   
   aux->next = aux2.next;
   /*
   printf("#%d \t Fecha: %d",aux->dni, aux->fecha);
   printf("\t#N: %s \t A: %s\t",aux->nombre, aux->apellidos);
   printf("Calle: %s\n",aux->direccion.calle);
   
   
   */
   aux = aux->next;
  }while(!feof(fp)); // (aux2.next != NULL);
 
fclose(fp);
return first;
}



El main quedaría así:

int main(){
    medicos *primero;
    primero = NULL;

   primero = read_fic();
}


Pero esta función me da fallos de segmentación por todos lados, a parte de que estoy usando un puntero local a la función, por lo tanto el valor de aux se debería perder cuando retorne first que es un puntero al primer elemento de dicha lista, como resolvería este problema sin usar variables globales (por ejemplo haciendo que aux2 sea global).
De todas formas puede que tenga mas fallos a parte de ese, la función con la que cargo los datos del fichero en la lista.

Un saludo.
#9
Saludos.

Tengo la siguiente duda, estoy implementando un array de cadenas de caracteres de la siguiente forma, pero me da fallo de segmentación cuando intento guardar los datos, necesito usar una función que controle el número de caracteres a insertar como fgets, pero no conozco ninguna y fgets me da dicho error.
Me gustaría saber por ocurra el fallo de segmentación y si hay alguna forma de solucionarlo.
Dejo el código a continuación:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

typedef char *strings;

int main(){
   
    strings info_variable[4];
   
    fgets(info_variable[0],30,stdin);
   
    printf("%s",info_variable[0]);

    getchar();

    return 1;   
}
#10
Saludos.
Tengo el siguiente problema, quiero pasar una lista a un fichero, la lista tiene datos que yo previamente le he introducido y los he mostrado para verificar que los datos son correctos, el caso es que cuando intento pasar dicha lista un fichero de la siguiente forma con fwrite, solo me mete basura en el fichero.
Dejo el código a ver si podéis ayudarme:

Esta es la estructura de la lista:


typedef struct nodo_pacientes{
         int dni;
         int fecha;
         int edad;
         int medico;
         struct nodo_pacientes *next;
        }pacientes;


Esta es la función que uso para escribir en el fichero a la cual le paso un puntero por referencia al primer elemento de la lista:

int list_fic(pacientes **primero){
FILE *fp;
pacientes *aux;

int b = 0;
fp = fopen("pacientes.txt","wb");
aux = *primero;

while(aux != NULL){
  b = fwrite(&aux,sizeof(pacientes),1,fp);
  aux = aux->next;
}

fclose (fp);
printf("\n\n %d",b);
}


Un saludo, espero que podáis ayudarme.
#11
Hola muy buenas.
Tengo una duda sobre si es posible anidar listas enlazadas, es decir una lista enlazada por cada nodo que cree de otra lista enlazada.
He hecho un código, parece funcionar, pero solo me muestra el ultimo nodo insertado, dejo el código aquí puesto por si podeís ayudarme a corregir los posibles errores que pueda a ver o si no es posible anidar una lista dentro de otra.

#include <stdio.h>
#include <stdlib.h>

typedef struct Articulo {
       int numero;
       int numero2;
       struct Articulo *sig;
      }TLista;

typedef struct nodo_art {
         int codigo;
         TLista *primero;
         struct nodo_art *sig;
        }lista;

int add_nod(lista **first,int a,int b,int c){
lista *nuevo,*aux;
TLista *nuevonum,*aux2;
nuevo = (lista *) malloc (sizeof(lista));
nuevonum = (TLista *) malloc (sizeof(TLista));
nuevo->codigo = a;
nuevo->sig = NULL;
nuevo->primero = NULL;


nuevonum->numero = b;
nuevonum->numero2 = c;
nuevonum->sig = NULL;

   if(nuevo->primero == NULL){
             nuevo->primero = nuevonum;
            } else {
               aux2 = nuevo->primero;
               while(aux2->sig != NULL){
                 aux2 = aux2->sig;
                }
               aux2->sig = nuevonum;
              }

if(*first == NULL){
             *first = nuevo;
            } else {
               aux = *first;
               while(aux->sig != NULL){
                 aux = aux->sig;
                }
               aux->sig = nuevo;
              }
}


int see_list(lista *first){
lista *aux;

if(first == NULL){return -1;}
while(aux != NULL){
  printf("%d- %d %d\n",aux->codigo,aux->primero->numero,aux->primero->numero2);
  aux = aux->sig;
}
}


int main(){
    lista *first;
    first = NULL;
   
    add_nod(&first,5,3,5);
    add_nod(&first,3,2,7);
   
    add_nod(&first,4,3,2);
    see_list(first);
    getchar();
}


Un saludo y gracias por todo.
#12
Saludos a todos.
El caso es que quiero aprender ensamblador, pero me interesaría aprender tanto el ensamblador de los microcontroladores, en principio el del pic 16f84 aunque por lo que tengo el ensamblador de ese pic es muy parecido al de otros pics de la familia de microchips.
Quiero aprender también ensamblador del microprocesador de los ordenadores actuales, el caso es que no se por cual empezar, no se si es mejor empezar por el ensamblador de los pic y luego pasar al de los microprocesadores o por el contrario aprender primero el del microprocesador y luego pasar al del microcontrolador.
¿es muy diferente uno de otro?¿el hecho de aprender uno, hace que el otro sea mas fácil de aprender?
Espero que podaís ayudarme.
Un saludo.
#13
Saludos, tengo un problemita a ver si podéis ayudarme a solucionarlo, tengo el siguiente programa que lo que hace es meter datos en una cola, en este caso serian códigos de articulo, y luego mediante una función de comparación  extraigo los datos de la cola y agrego esos datos en otra lista de manera que solo haya un nodo por cada código de articulo y la cantidad de dicho articulo.
El programa me compila y me funciona, pero el caso es que cuando agrego más de un determinado número de nodos el programa da errores y se produce fallo de segmentación.
Los nodos en la cola los agrego mediante la función add_nod().

He dejado el código con el fallo de segmentación si quitáis una llamada a la función add_nod el programa funciona y no da errores.
He usado el entorno de programación Dev C++ y estoy en Windows XP.


#include <stdio.h>
#include <stdlib.h>

typedef struct nodo_art {
         int Codigo;
         struct nodo_art *sig;
        }lista;

typedef struct Articulo {
       int Codigo,Cant_Pedida;
       struct Articulo *sig;
      }TLista;

/* Agrega nodos a la cola */

int add_nod(lista **first,lista **ultimo,int Codigo){
lista *nuevo;
nuevo = (lista *) malloc (sizeof(lista));
nuevo->Codigo = Codigo;
nuevo->sig = NULL;     
if(*first == NULL){
             *first = nuevo;
             *ultimo = nuevo;
            } else {
                   (*ultimo)->sig = nuevo;
                   *ultimo = nuevo;
              }
}
/* Extrae nodos de la cola */
int ext_nod(lista **first,lista **ultimo){
     lista *aux;
     int v;
     
     aux = *first;
     if(aux == NULL){return -1;}
     *first = (*first)->sig;
     v = aux->Codigo;
     free(aux);
     if(*first == NULL)
      *ultimo = NULL;
     return v;
    }

   
/* Funcion para agregar nodos a lista de Articulos, las llamadas a esta función las hace la función lol */
void add_tnod(TLista **primero,int Codigo,int Cantidad){
TLista *nuevo,*aux;
nuevo = (TLista *) malloc (sizeof(TLista));
nuevo->Codigo = Codigo;
nuevo->Cant_Pedida = Cantidad;
nuevo->sig = NULL;     
if(*primero == NULL){
             *primero = nuevo;
            } else {
                   aux = *primero;
                   while(aux->sig != NULL){
                   aux = aux->sig;
              }
             aux->sig = nuevo;
             }
}

/* Función de comparación, lo que hace es si un articulo esta en la cola pero no esta en la lista, lo extrae
   de la cola y lo inserta en la lista, si el articulo ya se encuentra en la lista, lo extrae de la cola
   e incrementa en 1 el campo Cantidad del articulo en cuestión dentro de la lista */
int lol(lista **primero,lista **ultimo,TLista **tprimero){
     lista *aux;
     TLista *aux2;
     int v,a;
     v = 0;
     a = 0;

     aux = *primero;
     while(aux != NULL){
      aux2 = *tprimero;
      if(aux2 == NULL){
         v = ext_nod(primero,ultimo);     
         add_tnod(tprimero,v,1);
         aux2 = *tprimero;
         aux = *primero;
        }
          while(aux2 != NULL){
           if(aux->Codigo == aux2->Codigo){
            a = aux2->Cant_Pedida;
            aux2->Cant_Pedida = a+1;
            ext_nod(primero,ultimo);
            aux = *primero;
            }else{
                   add_tnod(tprimero,aux->Codigo,1);
                   ext_nod(primero,ultimo);
                   aux = *primero;
                  }         
            aux2 = aux2->sig;
         }
     }
}

/* Función para visualizar la lista */
int see_tlist(TLista *tprimero){
      TLista *auxiliar;
       
      auxiliar = tprimero;
      if (auxiliar == NULL) {printf( "La lista esta vacia!!\n" ); return 0; }
      while (auxiliar!=NULL) {
             printf("Codigo:%d Cantidad:%d\n",auxiliar->Codigo,auxiliar->Cant_Pedida);             
             auxiliar = auxiliar->sig;
            }
     }

int main(){
  lista *primero,*ultimo;
  TLista *tprimero;
  primero = NULL;
  ultimo = NULL;
  tprimero = NULL;
 
  add_nod(&primero,&ultimo,45434);
  add_nod(&primero,&ultimo,45434);
  add_nod(&primero,&ultimo,45434);
  add_nod(&primero,&ultimo,2334);
  add_nod(&primero,&ultimo,111223);
  add_nod(&primero,&ultimo,8989);
  add_nod(&primero,&ultimo,2122);
  add_nod(&primero,&ultimo,2122);
  add_nod(&primero,&ultimo,2233);
  lol(&primero,&ultimo,&tprimero);
  see_tlist(tprimero);
  system("pause");
}


#14
Saludos, mire tengo el siguiente problema, el caso es que un profesor me ha puesto el siguiente ejercicio en un examen, no quiero que me lo resolváis ni nada por el estilo, lo único que necesito que me digáis si este profesor esta cometiendo algunas locuras en los ejercicios.

Veréis se como implementar una cola en C lo he echo otras veces y me funciona perfectamente, pero el caso es que en el examen de este hombre me he encontrado con lo siguiente y esta poniendo en duda mis conocimientos sobre C:

Dada la siguiente declaración:

struct Componente {
int dato;
struct Componetne  *sig
}
typedef Componente *Puntero;
struct Cola { Puntero principio, final; }


El dice que eso es la implementación de una cola , yo la verdad veo algunos errores en ese codigo para que eso sea dicha implementación pero bueno vosotros me diréis.
Luego sobre esa estructura de datos que el denomina cola, quieres que hagamos una serie de operaciones sobre la cola:
CitarInicializar la cola.
Primero: Devuelve el elemento que ocupe la primera posición.
Encolar: Introduce un nuevo elemento en la cola.
SacarCola: Elimina el elemento en la cabeza de la cola. (Aquí veo otro error si hablamos de colas solo puedo sacar de ella el ultimo elemento, otra cosa es que sean Bicolas, pero el eso no lo ha explicado)
Vacia: Averigua si la cola no tiene nada en su interior.

Un saludo, espero que podáis ayudarme.

#15
Saludos.

Tengo la siguiente duda:
Tengo el siguiente codigo fuente de una lista circular:



#include <stdio.h>
#include <stdlib.h>

typedef struct listacompleta {
         int dato;
         struct listacompleta *next;
        }lista;


void add_nod(lista **nodoe, int dato){
lista *nuevo,*aux;
nuevo = (lista *) malloc (sizeof(lista));
nuevo->dato = dato;
aux = *nodoe;
if(*nodoe == NULL ){
             nuevo->next = nuevo;
             *nodoe = nuevo;
            } else{
              /* *nodoe = *nodoe->next; */
               nuevo->next = aux->next;
               aux->next = nuevo;
              }
}



int main(){
lista *nodoe;
nodoe = NULL;

add_nod(&nodoe,8);
add_nod(&nodoe,2);
add_nod(&nodoe,3);
add_nod(&nodoe,5);

system("pause");
return 0;

}



El caso es que dentro de add_nod la linea que esta comentada no me compila, pero me gustaría avanzar en uno el elemento nodoe para agregar elementos a partir del ultimo insertado en la lista circular, como puedo hacer eso y por que me da error al compilar, me he mirado el error y creo que es porque es un puntero de puntero, pero no se como solucionarlo.

Un saludo y gracias a todos.
#16
Saludos y un Feliz Año Nuevo a todos  :)
Comiendo preguntando mi primera duda del año jeje

Me gustaría saber si he implementando bien las listas circulares en C.
El código para añadir elementos a la lista es el siguiente:


void add_nod(lista **nodoe, int dato){
lista *nuevo,*aux;
nuevo = (lista *) malloc (sizeof(lista));
nuevo->dato = dato;
aux = *nodoe;

if(*nodoe == NULL ){
             nuevo->next = nuevo;
             *nodoe = nuevo;
            } else{
               nuevo->next = aux->next;
               aux->next = nuevo;
              }
}


Un saludo.
#17
Hola ^^
Saludos a todos.
Estoy liado con las listas en C y he creado la siguiente función, me gustaría saber si esta bien implementada para no tener luego problema con los punteros.


int del_list(lista **primero,int a){
      lista *aux,*ant;
      if(a == 0){printf("El elemento no existe\n"); return 0;}
      /* if a es mayor que los elementos que contiene la lista, el elemento no existe */
      if(a == 1){
           ant = *primero;
           *primero = ant->next;
           free(ant);
      } else{
            a = a - 2;
            ant = *primero;
            while(a >0 && aux != NULL){
              ant = ant->next;
              a--;
             }
            aux = ant->next;
            ant->next = ant->next->next;
            free(aux);
           }
     }


Lo ultimo que me faltaría por hacer es que si introduzco un elemento mayor que el numero de elementos que contiene la lista me diga elemento invalido, pero por lo demás me gustaría saber si esta bien implementada.
Un saludo.
#18
Saludos.
El tema de las listas en C me esta volviendo loco, a ver si podéis ayudarme en el siguiente error.
Tengo la siguiente lista abierta, el caso es que el programa me compila pero supuestamente en la lista solo esta el primer elemento, a la hora de mostrármela solo me muestra el 4.

#include <stdio.h>
#include <stdlib.h>

typedef struct listacompleta {
         int dato;
         struct listacompleta *next;
        }lista;

lista *primero;

void add_nod(int dato){
  lista *nuevo,*aux;
  nuevo = (lista *) malloc (sizeof(lista));
  nuevo->dato = dato;
  nuevo->next = NULL;       
  if(primero == NULL){
              aux = primero;
              primero = nuevo;
             } else {
                     aux = primero;
                     while(aux != NULL){
                       aux = aux->next;
                      }
                     aux = nuevo;
                    }
 
}


void see_list(lista *primero){
      lista *auxiliar;
      int i;
     
      auxiliar = primero;
      while (auxiliar!=NULL) {
            printf( "%d\n",auxiliar->dato);
            auxiliar = auxiliar->next;
            i++;
      }
      if (i==0) printf( "\nLa lista está vacía!!\n" );
     
     
     }
main(){
primero = NULL;
add_nod(4);
add_nod(3);
add_nod(5);
see_list(primero); 
}

Un saludo.
#19
Programación C/C++ / Problema con listas enlazadas.
28 Noviembre 2010, 18:26 PM
Hola, tengo el siguiente problema que me trae totalmente loco con el tema de las listas enlazadas en C.

El caso es que tengo el siguiente código:


#include <stdio.h>
#include <stdlib.h>

typedef struct elementslist {
         int data;
         struct elementslist *next;
        }element;

element *first,*nodo,*nodo2;

void insertarnodo(element *nodo, int dato){
                nodo = (element*) malloc(sizeof(element));
                nodo->data = dato;
                nodo->next = NULL;
                first = nodo;
     }

main(){
first = NULL;
insertarnodo(nodo,5);
printf("%d\n",nodo->data);
}


Este código me compila pero cuando lo ejecuto se me cierra y no imprime el valor de la lista.
Luego tengo este otro que si me funciona pero no se si esta mal o bien programado, el caso es que me gustaría saber por que el primero no me funciona y el segundo si, ya que al tratarse de variables globales no tengo por que retornar ningún nodo como en el segundo.


#include <stdio.h>
#include <stdlib.h>

typedef struct elementslist {
         int data;
         struct elementslist *next;
        }element;

element *first,*nodo,*nodo2;

element *insertarnodo(element *nodo, int dato){
                nodo = (element*) malloc(sizeof(element));
                nodo->data = dato;
                nodo->next = NULL;
                first = nodo;
                return nodo;
     }

main(){
first = NULL;
nodo = insertarnodo(nodo,5);
printf("%d\n",nodo->data);
}


Un saludo a todos.
#20
Hola. Saludos a todos.

Tengo un problema a la hora de entender malloc, el caso es que quiero un array que cada elemento almacene cadenas de dimension variable.
En principio tengo:


char nombre[2];
nombre[0] = (char *)malloc(sizeof(char));


Supuestamente esto me funciona, es decir, yo puedo usar scanf y almacenar una cadena del tamaño que yo quiera en nombre[0], pero el caso es que creo que la asignación de memoria esta mal, es decir, yo estoy reservando memoria para lo que ocupa un carácter, es decir un byte, por lo tanto no me tendría que dejar almacenar mas de un bye, al menos que este machando la memoria a partir de la posición de asignación de dicho byte, por eso quería saber si este código es correcto.
Es decir, si de esta forma yo estoy reservando memoria para una cadena de tamaño variable en nombre[0].

Un Saludo.
#21
Hola muy buenas, tengo como hobby la programación, se PHP, C y algo aunque poquito de C++.

El caso es que quiero realizar un programa para móviles en J2ME, pero casi que no se nada de esta plataforma, me gustaría saber si mi proyecto es viable, si es así para ponerme desde ahora a aprender Java y poder hacerlo.

El proyecto seria el siguiente, quiero coger el fragmento de un video que tengo en 3gp, para programar una aplicación que funcione como un despertador, a la hora que yo le diga en vez de reproducir un sonido, se habrá dicho fragmento de video.
¿Se podría hacer esto como aplicación Java para móviles?

Saludos, espero que me podáis aconsejar.

#22
Muy buenas

Tengo el siguiente problema, tengo un campo precio que solo acepte 5 dígitos numéricos  y vayan desde el 1, al 99999.

He hecho lo siguiente:

$patronp = "^[1-9]{1}[0-9]{0,4}$";
echo eregi($patronp,"12345")


Funciona pero veo que el patrón ese es un poco cutre, me gustaría saber si hay otra forma de decir que el primer dígito que contenga la cadena no pueda ser un 0.

Un saludo