C -- Basic Struct questions

Posted by Ryan Yu on Stack Overflow See other posts from Stack Overflow or by Ryan Yu
Published on 2012-09-09T09:33:59Z Indexed on 2012/09/09 9:38 UTC
Read the original article Hit count: 171

Filed under:
|

So I'm trying to learn C right now, and I have some basic struct questions I'd like to clear up:

Basically, everything centers around this snippet of code:

#include <stdio.h>
#include <stdlib.h>

#define MAX_NAME_LEN 127

typedef struct {
    char name[MAX_NAME_LEN + 1];
    unsigned long sid;
} Student;

/* return the name of student s */
const char* getName (const Student* s) { // the parameter 's' is a pointer to a Student struct
    return s->name; // returns the 'name' member of a Student struct
}

/* set the name of student s
If name is too long, cut off characters after the maximum number of characters allowed.
*/
void setName(Student* s, const char* name) { // 's' is a pointer to a Student struct |     'name' is a pointer to the first element of a char array (repres. a string)
    s->name = name;
}

/* return the SID of student s */
unsigned long getStudentID(const Student* s) { // 's' is a pointer to a Student struct
    return s->sid;
}

/* set the SID of student s */
void setStudentID(Student* s, unsigned long sid) { // 's' is a pointer to a Student struct | 'sid' is a 'long' representing the desired SID
    s->sid = sid;
}

I've commented up the code in an attempt to solidify my understanding of pointers; I hope they're all accurate.

So anyway, I have a feeling that setName and setStudentID aren't correct, but I'm not exactly sure why. Can someone explain? Thanks!

© Stack Overflow or respective owner

Related posts about c

    Related posts about struct