How to create multiple objects from a struct having its user-defined values ( Pointers and Malloc)

Asked

Viewed 30 times

-1

Then, in the exercise I need to display at most 10 products with name, quantity and value entered by the user using the terminal and then display everything on the screen.

But I only know how to create a single "object" of this class:

Produto *produto1 = (Produto*)malloc(sizeof(Produto));

I needed something with product[0], product[1], product[2]!

#include <stdio.h>
#include <stdlib.h>
#include <iostream>
using namespace std;

typedef struct {
    char nome;
    int quantidade;
    double preco;
} Produto;

void Inicializa (Produto *conta, char nome, int quantidade, double preco) {
    conta->nome = nome;
    conta->quantidade = quantidade;
    conta->preco = preco;
}

void Imprime (Produto *conta) {
    cout << endl << conta->nome;
    cout << endl << conta->quantidade;
    cout << endl << conta->preco << endl;
}

int main () {

    

> Produto *produto1 = (Produto*)malloc(sizeof(Produto));


    printf("\n+----------------------------------------------------------------------------+\n");
    printf("\n|                            Pedido de Produtos                              |\n");
    printf("\n+ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -  - -- - - - - -+\n");
    printf("\n| Digite o nome, quantidade solicitada e preco unitario do produto desejado: |\n");
    printf("\n+----------------------------------------------------------------------------+\n");

    Inicializa(produto1, 'c', 2, 33.33);

    Imprime(produto1);

    return 0;
}

One more question as I pick up and store an entire string, like: "Product Name".

Thank you for your attention.

  • First of all I think I should choose which language to use? C or C++? And from there start your program with struct/malloc in C or use class and vectors for example in C++

1 answer

1

You could use vector(array):

Produto produtos[100];

So you’d log on produtos[0], produtos[1], etc....

Or, since you’re using pointers, you could create a chain list:

struct produto {
    char nome;
    int quantidade;
    double preco;
    struct produto *prox;
};
typedef struct produto Produto;

And would access the next product on the list with:

Produto *prox_prod = prod->prox;

Browser other questions tagged

You are not signed in. Login or sign up in order to post.