Foros del Web » Programación para mayores de 30 ;) » C/C++ »

[SOLUCIONADO] Punteros a constantes

Estas en el tema de Punteros a constantes en el foro de C/C++ en Foros del Web. Hola,estaba haciendo un ejercicio que consiste en que tengo una lista formada por números y caracteres .Un puntero tiene que apuntar a esta lista para ...
  #1 (permalink)  
Antiguo 08/05/2015, 00:31
Avatar de anggiebs  
Fecha de Ingreso: julio-2014
Ubicación: Madrid
Mensajes: 35
Antigüedad: 9 años, 9 meses
Puntos: 0
Pregunta Punteros a constantes

Hola,estaba haciendo un ejercicio que consiste en que tengo una lista formada por números y caracteres .Un puntero tiene que apuntar a esta lista para luego,ordenarlo por números y me sale este error:
error C2440: '=' : no se puede realizar la conversión de 'const int *' a 'tPtr'
Si pudieran ayudarme ,lo agradecería mucho :)!

Código C++:
Ver original
  1. const int N = 10;
  2. //Tipos:
  3. typedef struct {
  4.     int num;
  5.     char car;
  6. } tRegistro;
  7.  
  8. typedef struct {
  9.     tRegistro elementos[N];
  10.     int cont;
  11. } tLista;
  12.  
  13. typedef const tRegistro *tPtr;  //Puntero a dato constante.
  14.  
  15. typedef struct {
  16.     tPtr punt[N];
  17.     int cont;
  18. } tListaPtr; // Lista de punteros
  19.  
  20. //Procedimiento:
  21. void porNum(const tLista &lista, tListaPtr &ord){
  22.  
  23.     for(int i = 0; i < lista.cont-1; i++){
  24.         int menor = i;
  25.         for(int j = i+1; j < lista.cont; j++){
  26.             if(lista.elementos[j].num < lista.elementos[menor].num){
  27.                 menor = j;
  28.             }
  29.         }
  30.         if(menor > i){
  31.             ord.punt[i] = &lista.elementos[menor].num;//Aquí me señala el error
  32.         }
  33.     }
  34. }
  #2 (permalink)  
Antiguo 08/05/2015, 01:49
 
Fecha de Ingreso: octubre-2014
Ubicación: Madrid
Mensajes: 1.212
Antigüedad: 9 años, 6 meses
Puntos: 204
Respuesta: Punteros a constantes

Código C:
Ver original
  1. typedef const tRegistro *tPtr;

tPtr es un puntero a tipo "tRegistro", pero en esa línea que te falla estás intentando que un tPtr apunte a un int.

Código C:
Ver original
  1. ord.punt[i] = &lista.elementos[menor]; //.num; <--- ".num" sobra

Un saludo.
  #3 (permalink)  
Antiguo 10/05/2015, 03:16
Avatar de anggiebs  
Fecha de Ingreso: julio-2014
Ubicación: Madrid
Mensajes: 35
Antigüedad: 9 años, 9 meses
Puntos: 0
Respuesta: Punteros a constantes

Muchas gracias :) !!!

Etiquetas: Ninguno
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 09:30.