The elements of the Array are not being initialized, because when I run the code I only see the values from the memory and not the values that I set in the vector. Can you explain to me why is this happening and what should I do in future to avoid this mistake?
#include <iostream>
using namespace std;
//ne va crapa deoarece nu am initializat valorile vectorului, de asta cream o functie de initializare vector
void initialisingVector(int* vector, int n, int InitialValue)
{
for (int i = 0; i < n; i++)
{
vector[i] = InitialValue;
}
}
//mereu vom pune initializarea inainte de afisare
void displayingtheVector(int vector[], int n)
{
cout << endl << "The vector is:";
for (int i = 0; i < n; i++)
{
cout << vector[i] << ",";
}
}
int* creatingAndInitialisingtheVector(int* n)//nu avem nevoie de nr de elemente deoarece le ia din main;si nici de vector;
{//nu avem nevoie de nimic la parametrii, totusi punem n deoarece ne da eroare-n main, ai comentat acolo
//vom folosi in* n ca parametru deoarece n e o valoare ce se va modifica , prin urmare e transmisa prin pointer
//vom avea eroare cu expected ; ,nu are legatura cu ; problema este de la int[] ,expected an identifier
//nu o sa putem nici o data pune int[] la tipul unei functii, mereu vom pune int*, int[]---sa incercam sa uitam forma asta;
//INTOTDEAUNA int*
int vectorNou[30];
int numberElements;
int InitialValue;
std::cout << std::endl << "Number of elements:";
std::cin >> numberElements;
*n = numberElements;
std::cout << std::endl << "Initial value is:";
std::cin >> InitialValue;
initialisingVector(vectorNou, numberElements, 0);
//afisareVector(vectorNou, numarElemente); nu are sens sa o facem in fct de creare
return vectorNou;
}
int main()
{
int listaPreturi[30];
int numarProduse;
/*std::cout << std::endl<<"Numarul de produse este:";
std::cin >> numarProduse;
initializareVector(listaPreturi, numarProduse, 0);
afisareVector(listaPreturi,numarProduse);
*/
//listaPreturi=crearesiInitializareVector();//ne va trebui o variabila care sa prinda vectorul creat de functie,de asta punem listaPreturi
//vom obtine o alta eroare dupa ce egalam variabila cu functia; expression must be a modifiable lvalue==>listaPreturi e o variabila constanta, si trebuie sa fie modifiable
//dc avem o fct care inhtoarce un vector nu vom putea prinde vectorul nou intr-un alt vector deja creat static.
//il va prinde u8n vetor dinamic in schimb
int nrElements = 0;
int* vectorNew = creatingAndInitialisingtheVector(&nrElements);//functioneaza
//afisareVector(vectorNou, sizeof(vectorNou)); e periculos folosind sizeof(vectorNou) deoarece vectorNou are 4 , utilizatoru poate vrea mai multe elemente
displayingtheVector(vectorNew, nrElements);
}
I expect that the vector with the values set by the user to be displayed, and not the memory adreses.
Aucun commentaire:
Enregistrer un commentaire