Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!

Categories

Welcome to the new platform of Programmer's Heaven! We apologize for the inconvenience caused, if you visited us from a broken link of the previous version. The main reason to move to a new platform is to provide more effective and collaborative experience to you all. Please feel free to experience the new platform and use its exciting features. Contact us for any issue that you need to get clarified. We are more than happy to help you.

Is this a correct dynamic structure?

UlnarianUlnarian Posts: 13Member
Hey all, I'm running of a problem question in this C++ book I've picked up. The problem asks me to design a dynamic structure that will keep track of the user's car models and years.

If I understand dynamic structures correctly, they are structures that are created during the runtime of a program so as to conserve memory.

With this in mind, I've created the following, but I keep getting a compiler error down in the cin portion of the while loop (marked below in the comments). Does anyone know what the problem is? Thanks!

-----------------------------------------


#include
#include


struct s_carprogram
{
std::string make;
int year;
};

int main()
{
using namespace std;
cout << "How many cars are there: ";
int cars;
cin >> cars;
int i=0;

while (i <= cars)
{
s_carprogram carloop[i];
cout << "
Enter the car model: ";
cin >> carloop[i].make;
cout << "
Enter year of vehicle: ";
cin >> carloop[i].year); //expected ";" before ")" token ERROR!!!!
++i;
}

Comments

  • stoberstober Posts: 9,765Member ✭✭✭
    [code]
    : #include
    : #include
    :
    :
    : struct s_carprogram
    : {
    : std::string make;
    : int year;
    : };
    :
    : int main()
    : {
    : using namespace std;
    : cout << "How many cars are there: ";
    : int cars;
    : cin >> cars;
    : int i=0;
    :
    : while (i <= cars)
    : {
    : s_carprogram carloop[i];
    [red]^^^ you can't declare an array that way. [/red]
    [/code]

    Here is a suggested change that will probably compile and work.
    [code]
    : int main()
    : {
    : using namespace std;
    : cout << "How many cars are there: ";
    : int cars;
    : cin >> cars;
    : int i=0;
    [red] s_carprogram* carloop = new s_carprogram[cars];[/red]
    : while (i <= cars)
    : {
    ...
    [/code]



  • kooladikooladi Posts: 72Member
    : Hey all, I'm running of a problem question in this C++ book I've picked up. The problem asks me to design a dynamic structure that will keep track of the user's car models and years.
    :
    : If I understand dynamic structures correctly, they are structures that are created during the runtime of a program so as to conserve memory.
    :
    : With this in mind, I've created the following, but I keep getting a compiler error down in the cin portion of the while loop (marked below in the comments). Does anyone know what the problem is? Thanks!
    :
    : -----------------------------------------
    :
    :
    : #include
    : #include
    :
    :
    : struct s_carprogram
    : {
    : std::string make;
    : int year;
    : };
    :
    : int main()
    : {
    : using namespace std;
    : cout << "How many cars are there: ";
    : int cars;
    : cin >> cars;
    : int i=0;
    :
    : while (i <= cars)
    : {
    : s_carprogram carloop[i];
    : cout << "
    Enter the car model: ";
    : cin >> carloop[i].make;
    : cout << "
    Enter year of vehicle: ";
    : cin >> carloop[i].year[red])[/red]; //expected ";" before ")" token ERROR!!!!
    : ++i;
    : }
    :
    Remove this and it will work
    Programming is a race between software engineers striving to build bigger and better idiot-proof programs,and the Universe trying to produce bigger and better idiots. So far,the Universe is winning.

  • stephlstephl Posts: 422Member
    : : Hey all, I'm running of a problem question in this C++ book I've picked up. The problem asks me to design a dynamic structure that will keep track of the user's car models and years.
    : :
    : : If I understand dynamic structures correctly, they are structures that are created during the runtime of a program so as to conserve memory.
    : :
    : : With this in mind, I've created the following, but I keep getting a compiler error down in the cin portion of the while loop (marked below in the comments). Does anyone know what the problem is? Thanks!
    : :
    : : -----------------------------------------
    : :
    : :
    : : #include
    : : #include
    : :
    : :
    : : struct s_carprogram
    : : {
    : : std::string make;
    : : int year;
    : : };
    : :
    : : int main()
    : : {
    : : using namespace std;
    : : cout << "How many cars are there: ";
    : : int cars;
    : : cin >> cars;
    : : int i=0;
    : :
    : : while (i <= cars)
    : : {
    : : s_carprogram carloop[i];
    : : cout << "
    Enter the car model: ";
    : : cin >> carloop[i].make;
    : : cout << "
    Enter year of vehicle: ";
    : : cin >> carloop[i].year[red])[/red]; //expected ";" before ")" token ERROR!!!!
    : : ++i;
    : : }
    : :
    : Remove this and it will work
    : Programming is a race between software engineers striving to build bigger and better idiot-proof programs,and the Universe trying to produce bigger and better idiots. So far,the Universe is winning.
    :
    :
    I am not sure the ')' is the only problem. As Stober wrote, you cannot define an array whose size is not known at compile time (at least in C). That's why malloc() and calloc() exist (or new).

    Steph
  • UlnarianUlnarian Posts: 13Member
    Sorry, I've been...diverted for awhile. Thanks for the help. I'm going to chew on your input awhile now (for some reason, I've the darndest time mastering pointers) :)

    : [code]
    : : #include
    : : #include
    : :
    : :
    : : struct s_carprogram
    : : {
    : : std::string make;
    : : int year;
    : : };
    : :
    : : int main()
    : : {
    : : using namespace std;
    : : cout << "How many cars are there: ";
    : : int cars;
    : : cin >> cars;
    : : int i=0;
    : :
    : : while (i <= cars)
    : : {
    : : s_carprogram carloop[i];
    : [red]^^^ you can't declare an array that way. [/red]
    : [/code]
    :
    : Here is a suggested change that will probably compile and work.
    : [code]
    : : int main()
    : : {
    : : using namespace std;
    : : cout << "How many cars are there: ";
    : : int cars;
    : : cin >> cars;
    : : int i=0;
    : [red] s_carprogram* carloop = new s_carprogram[cars];[/red]
    : : while (i <= cars)
    : : {
    : ...
    : [/code]
    :
    :
    :
    :

Sign In or Register to comment.