Ver Mensaje Individual
  #2 (permalink)  
Antiguo 15/09/2011, 07:01
Gott
 
Fecha de Ingreso: febrero-2011
Ubicación: Paraguay
Mensajes: 59
Antigüedad: 13 años, 2 meses
Puntos: 1
Respuesta: Punteros en C

Cita:
Iniciado por markmb Ver Mensaje
Hola a todos, estoy empezando en C (luego me meteré en C++) y estoy practicando con unos ejercicios que he encontrado por ahí. Ahora mismo tengo problemas con punteros:
Código C:
Ver original
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. int main(void){
  5.     char entrada[100];
  6.     char *ult=entrada;
  7.     char cantidadstr[10];
  8.     int i,j,k = 0;
  9.     int res;
  10.  
  11.     scanf ("%s",entrada);
  12.    
  13.     printf ("Hola %s",ult);
  14.     while (*ult != "\0"){
  15.         if(*ult == "\n"){
  16.             if(i != 0){
  17.                 printf("\n");
  18.             }
  19.             i++;
  20.             j = 0;
  21.         }
  22.         else if(i != 0){
  23.             if(*ult == " "){
  24.                 j++;
  25.                 k=0;
  26.                 res = atoi(cantidadstr);
  27.                 printf("%d ",i);
  28.                 cantidadstr[10] = '\0';            
  29.             }
  30.             else if(j != 0){
  31.                 cantidadstr[k] = *ult;
  32.             }
  33.            
  34.         }
  35.         k++;
  36.         *ult++;
  37.     }
  38.     return 0;
  39. }

El puntero ult da problemas. Al compilar me salen warnings, sobre comparar punteros con int, pero el problema gordo, es que al ejecutar e insertar la cadena, me salta "Violación de segmento".

Por lo que he visto después de toda la mañana intentando arreglarlo, el error se sitúa en el printf primero, al llamar a ult.

Gracias de antemano!
Es mejor si dices cual es el ejercicio que intentas hacer, porque para usar punteros asi como veo que intentas, que es cargar el texto por parte del usuario, tienes que hacerlo usando memoria dinamica, sino no podras!
Además en el while que hace por letra lo que tienes que preguntar es si *ult["algo aqui"] es != NULL..entiendes??
Trata de poner el ejercicio y lo vamos haciendo juntos ok??