Ver Mensaje Individual
  #5 (permalink)  
Antiguo 15/09/2011, 08:26
markmb
 
Fecha de Ingreso: octubre-2009
Ubicación: En el ordenador
Mensajes: 504
Antigüedad: 14 años, 7 meses
Puntos: 10
Respuesta: Punteros en C

Después de realizar los cambios que mencionaba, llego a esto:
Código C:
Ver original
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. int main(void){
  5.     char entrada[1001*11*101];
  6.     /*Asi tenemos el tamano maximo:
  7.     1001 por las 1000 posibles lineas, mas la primera
  8.     11 por el tamano maximo del numero (1 + 9 ceros), mas el espacio o salto de linea siguiente
  9.     101 por el numero de numeros por linea, mas el primero
  10.     */
  11.     char *ult=entrada;
  12.     char cantidadstr[10];
  13.     int i,j,k = 0;
  14.     int res;
  15.  
  16.     scanf ("%s",entrada);
  17.     printf ("\n%s",entrada);
  18.    
  19.     //poniendo ese print ahi arriba, ese me lo muestra, por tanto, el fallo esta en el puntero de debajo de esta linea
  20.     printf ("Hola %s",ult);
  21.     while (*ult != "\0"){
  22.         if(*ult == "\n"){
  23.             if(i != 0){
  24.                 printf("\n");
  25.             }
  26.             i++;
  27.             j = 0;
  28.         }
  29.         else if(i != 0){
  30.             if(*ult == " "){
  31.                 j++;
  32.                 k=0;
  33.                 res = atoi(cantidadstr);
  34.                 printf("%d ",res*2);
  35.                 //Este es el otro cambio que hablaba
  36.                 cantidadstr[10] = '\0';            
  37.             }
  38.             else if(j != 0){
  39.                 cantidadstr[k] = *ult;
  40.             }
  41.            
  42.         }
  43.         k++;
  44.         *ult++;
  45.     }
  46.     return 0;
  47. }

He marcado el lugar donde deja de funcionar. Me imagino que me hace falta entender un poco mejor los punteros, pero si no es con ejemplos y a golpes, no lo consigo...
__________________
Buscando ideas para proyectos....

Esperando a tener 18 años....