Assigning a value to char* in a struct


Your code is a horrible mix of C and C++ style, as Mike’s comment says, pick a language and use it properly.

#include <iostream>
#include <string>
using namespace std;

struct person {
  string name;
  string city;
  int age;
};

int main()
{
  person user;

  cout << "Please fill in the user info.." << endl << "Name: ";
  cin >> user.name;
  cout << "Age: ";
  cin >> user.age;
  cout << "City";
  cin >> user.city;

  cout << "The user info is:n" << "Name: " << user.name << "nAge: " << user.age << "nCity: " << user.city << endl;
  system("pause");
}

Don’t dynamically allocate when you don’t need to (then there’s no risk of mallocing the wrong amount of memory, and no risk of not mallocing memory for the strings, which are both mistakes you made in your original program).

main must return int not void

typedef struct {...} x; is not necessary in C++, just say struct x {...};

Don’t overuse endl



Source link

Leave a Comment