I have a school project and I have to use the AM in the Student.h as a char*.The AM have to have numbers in it. I can't understand why what I am doing is not working. Student.cpp

#include <iostream> #include <string> #include "Student.h" using namespace std; int main() { Student dlg; dlg.AM[10]={2,1,3,9,0,2,6,6}; } 

Student.h

#pragma once #include <string> using namespace std; class Student { public: char *AM[20]; string Name; unsigned int Semester = 1; }; 
7

1 Answer

If you really need your student number to be a char string, then you need to convert your ints to char* before assigning them to the array.

int main() { Student dlg; int j = 0; for (auto i : {2,1,3,9,0,2,6,6}) { auto strInt { std::to_string(i) }; // create a C++ string containing a int // next copy the internal memory of the C++ string to a read-writable memory buffer // and assign a pointer to that buffer casted to a char* to the appropriate slot in the array dlg.AM[j++] = static_cast<char*> (std::memcpy (new char[16], strInt.c_str(), strInt.size())); } // test for (int i = 0; i < 8; i++) { cout << dlg.AM[i] << ' '; } } 

Are you sure the student number should be a char* ?

5

Your Answer

Sign up or log in

Sign up using Google Sign up using Facebook Sign up using Email and Password

Post as a guest

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.