function parameter used to store value

Posted by user248247 on Stack Overflow See other posts from Stack Overflow or by user248247
Published on 2010-03-31T22:37:02Z Indexed on 2010/03/31 22:43 UTC
Read the original article Hit count: 356

Filed under:
|

Hi, I have to define an interface. The API in my homework is stated below:

int generate_codes(char * ssn, char * student_id);

int denotes 0 or 1 for pass or fail. studentid is an output param should return a 6 digit id. ssn is a 9 digit input param

they school program will take ssn's and use my code to generate the student id.

  1. now from an API perspective should I not be using const char * for both parameters.
  2. should the studentid not be passed in by reference? rather than by pointer?
  3. can someone tell me how i can easily use the pointer in my test app which uses my api to get the pointer such that it prints a std::string from a char *?

my app code looks something like

const char * ssn = "987098765"
const char * studnt_id = new char [7];
int value = -1;

value = generate_codes(ssn,studnt_id);
std::string test(studnt_id);
std::cout<<"student id= "<<test<<" Pass/fail= "<<value<<std::endl;

delete [] studnt_id;
return 0;

I basically got an error about << not being compatible with the right hand side of the operand. When i changed the code to

std::cout<<"student id= "<<test.c_str()<<" Pass/fail= "<<value<<std::endl; 

then it worked but i get garbage for the value. not sure how to do get the value form the pointer. THe value inside the function prints just fine. but when i try to print it outside of the function it prints garbage. Inside the above function I do set the studndt_id like so

std::string str_studnt_id = studnt_id;

should that make the address of the str_studnt point to the address of studnt_id and thus any changes I make to the value that its pointing to it should reflect outside the function?

© Stack Overflow or respective owner

Related posts about c++

Related posts about homework