У меня проблема с моим кодом, я не могу назначить строковое значение в char * в структуре. Может кто-нибудь сказать мне, что не так с моим кодом и почему?Назначение значения char * в структуре
#include <iostream>
using namespace std;
typedef struct{
char* name;
char* city;
int age;
} person;
void main()
{
person * user;
user = (person*)malloc(sizeof(person*));
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:" << endl << "Name: " << user->name << endl << "Age: " << user->age << endl << "City: " << user->city << endl;
system("pause");
}
Большое спасибо.
Выберите язык. Если это C, не используйте 'cin' и выделяйте некоторую память для строк. Если это C++, используйте 'std :: string' и не используйте' malloc' или raw указатели. Если это ужасная смесь обоих, то просто сдавайся сейчас. –
Просьба пояснить, что вы подразумеваете под «невозможно присвоить строковое значение». В этом коде есть только одно задание, которое является 'user = ...'. (И не используйте 'malloc' в C++, используйте' new'.) – molbdnilo
попробуйте изменить «user = (person *) malloc (sizeof (person *));» to "user = (person *) malloc (sizeof (person));" – pmverma