Dev - C++ - No encuentro el error.

 
Vista:
Imágen de perfil de Dennis
Val: 141
Ha mantenido su posición en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

No encuentro el error.

Publicado por Dennis (63 intervenciones) el 19/11/2020 15:54:10
Hola y saludos.
Me podrían ayudar porque no encuentro el error en la linea 22.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#include <iostream>
#include <conio.h>
 
using namespace std;
 
    void leer(int* arreglo, int n);
    void mostrar(int* arreglo, int n);
 
    int main(){
 
    int leerNumeros = 0, leerLimite = 0;
    int* leer;
    leer = &leerNumeros;
    int* limite;
    limite = &leerLimite;
 
    cout<< "NUMEROS: ";
     cin>> leerNumeros;
    cout<< "LIMITE DE NUMEROS: ";
     cin>> leerLimite;
 
    leer(&leer, *limite);
 
    getch();
    }
 
    void leer(int* arreglo[], int n){
        for(int i = 0; i < n; ++i){
            cin>> *arreglo[i];
        }
    }
 
    void mostrar(int* arreglo[], int n){
        for(int i = 0; i < n; ++i){
            cout<< *arreglo[i] << " ";
        }
    }
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Rodrigo
Val: 1.755
Plata
Ha mantenido su posición en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

No encuentro el error.

Publicado por Rodrigo (539 intervenciones) el 19/11/2020 16:17:55
C/C++ permiten mirar la memoria como arreglo, y pasearte con un puntero, pero tienes que haber definido en alguna parte ese arreglo.
Las funciones leer y mostrar aparentemente usan un arreglo. El main que invoca estas funciones, no ha definido arreglo alguno. Solo un entero.

Define un arreglo de enteros en el main y luego pasa el nombre de este a las funciones.
O bien usa un puntero, pide memoria para un arreglo de enteros y pasa el nombre de ese puntero.

En la funcion, usa la notacion de arreglos ( int arreglo[] ), o bien un puntero al primer elemento ( int* arreglo )
En el cuerpo de las funciones, usa el arreglo tal como si fuera un arreglo de enteros, elimina el * de las expresiones (lineas 29 y 35)

Tienes que hacer calzar el prototipo (la linea 6 y 7, que ahora estan perfectas) con la definicion (linea 27 y 33) que ahora, de manera incorrecta estan cambiando los tipos.

Creo que hacer estos cambios hara lo necesario para que tu programa funcione.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar