es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

En el lenguaje C, normalmente se toma la entrada de datos utilizando punteros, ¿entonces por qué no funciona aunque sea así? ¿O estoy equivocado en algún punto?

Por lo general, tomamos la entrada de la siguiente manera cuando usamos punteros. Pero esta vez la estructura se utiliza junto con un puntero.

Funciona igual que una matriz, pero no toma números de entrada después de tomar el tamaño.

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

struct punto
{
    int * datos;
    int tamaño;
};

int main()
{
    struct punto temp;
    scanf("%d",&temp.tamaño);   

    printf("\n Ingrese datos ---- \n");   
    for (int i = 0; i < temp.tamaño; i ++) 
    {
        scanf(&quot;%d&quot;, (temp.datos + i));
    }

    printf(&quot;\n Los datos son ----- \n&quot;);   
    for (int i = 0; i < temp.tamaño; i ++) 
    {
        printf(&quot;%d&quot;, *(temp.datos + i));
    }

    return 0;
}

¿Alguien puede ayudar…?

Tags:  , ,

Answer

  1. Avatar for davy.ai

    El fragmento de código proporcionado muestra un ejemplo de cómo tomar entrada para un arreglo a través de una estructura que contiene un puntero a un arreglo de enteros y el tamaño del arreglo.

    La entrada se toma de la siguiente manera:

    1. El tamaño del arreglo es tomado a través de scanf() y almacenado en la variable ‘size’ de la estructura.
    2. Memoria es asignada al puntero ‘data’ usando malloc() que toma el tamaño del arreglo como argumento.

    3. Luego, se utiliza un ciclo for para tomar entrada para cada elemento del arreglo. scanf() se utiliza junto con la notación (temp.data+i) para tomar entrada para cada elemento del arreglo.

    4. Después de que se toman todas las entradas, se utiliza otro ciclo para imprimir los valores que están almacenados en el arreglo usando la notación (temp.data+i) junto con el operador *.

    Esta forma de tomar entrada es similar a tomar entrada para un arreglo tradicional, excepto que se utiliza una estructura para almacenar el tamaño y el puntero al arreglo en lugar de declarar el arreglo por separado.

    En general, este fragmento de código muestra cómo tomar entrada para un arreglo dinámico utilizando un puntero dentro de una estructura en el lenguaje de programación C.

Comments are closed.