#include<stdio.h>
#include<stdlib.h>
typedef struct student* Student; // taking Student as pointer to Struct
int initMemory(Student );
struct student {
char* mark; /* or array[2] like array[0] = 'A' , array[1] = 'B' */
int age;
int weight;
};
typedef enum{
MEMORY_GOOD,
MEMORY_BAD} Status;
int main(int argc, char* argv[]) {
Status status;
Student john; /* Pointer to struct */
/* Function call to allocate memory*/
status = initMemory(john);
printf("got status code %d",status
); }
int initMemory(Student _st){
_st
= (Student
)malloc(sizeof(Student
));
printf("Storage size for student : %d \n", sizeof(_st
)); if(_st == NULL)
{
return MEMORY_BAD;
} else {
char* _tmp
= malloc(2*sizeof(char)); /* error: request for member 'mark' in something not a structure or union */ _st->mark = _tmp;
return MEMORY_GOOD;
}
}
I2luY2x1ZGU8c3RkaW8uaD4KI2luY2x1ZGU8c3RkbGliLmg+CnR5cGVkZWYgc3RydWN0IHN0dWRlbnQqIFN0dWRlbnQ7IC8vIHRha2luZyBTdHVkZW50IGFzIHBvaW50ZXIgdG8gU3RydWN0CmludCBpbml0TWVtb3J5KFN0dWRlbnQgKTsKc3RydWN0IHN0dWRlbnQgewogICAgY2hhciogbWFyazsgLyogb3IgYXJyYXlbMl0gbGlrZSBhcnJheVswXSA9ICdBJyAsIGFycmF5WzFdID0gJ0InICovCiAgICBpbnQgYWdlOwogICAgaW50IHdlaWdodDsKfTsKCnR5cGVkZWYgZW51bXsKICAgIE1FTU9SWV9HT09ELAogICAgTUVNT1JZX0JBRH0gU3RhdHVzOyAKCmludCBtYWluKGludCBhcmdjLCBjaGFyKiBhcmd2W10pIHsKCiAgICBTdGF0dXMgc3RhdHVzOwoKICAgIFN0dWRlbnQgam9objsgIC8qIFBvaW50ZXIgdG8gc3RydWN0ICovCgogICAgLyogRnVuY3Rpb24gIGNhbGwgdG8gYWxsb2NhdGUgbWVtb3J5Ki8KICAgIHN0YXR1cyA9IGluaXRNZW1vcnkoam9obik7CglwcmludGYoImdvdCBzdGF0dXMgY29kZSAlZCIsc3RhdHVzKTsKfQoKCmludCBpbml0TWVtb3J5KFN0dWRlbnQgX3N0KXsKICAgICBfc3QgPSAgKFN0dWRlbnQpbWFsbG9jKHNpemVvZihTdHVkZW50KSk7CgogICAgcHJpbnRmKCJTdG9yYWdlIHNpemUgZm9yIHN0dWRlbnQgOiAlZCBcbiIsIHNpemVvZihfc3QpKTsKICAgIGlmKF9zdCA9PSBOVUxMKQogICAgewogICAgICAgIHJldHVybiBNRU1PUllfQkFEOwogICAgfSAgIGVsc2UgewoKCSAgICBjaGFyKiBfdG1wID0gbWFsbG9jKDIqc2l6ZW9mKGNoYXIpKTsgLyogZXJyb3I6IHJlcXVlc3QgZm9yIG1lbWJlciAnbWFyaycgaW4gc29tZXRoaW5nIG5vdCBhIHN0cnVjdHVyZSBvciB1bmlvbiAqLwoJCV9zdC0+bWFyayA9IF90bXA7CiAgICAJcmV0dXJuIE1FTU9SWV9HT09EOyAKCX0KfQo=