pointers in C and use in linked list -
i struggling understanding structs , pointers, , thus, struggling understand examples of linked lists in both textbook , online.
what following code mean:
(struct node *)malloc(sizeof(struct node)); will please provide detailed explanation?
i understand being allocated memory (the size in bytes of struct node), however, don't understand what
(struct node *) means.
function malloc() returns address of allocated memory. return type of malloc() function void* (it don't know type of data allocating memory), assign pointer of structure type typecasts required type. in expression (struct node *) typecast instruction:
(struct node *) malloc (sizeof(struct node)); ^ | ^ typecast | call of malloc function argument = sizeof(struct node) generally, should avoid typecast returned value malloc/calloc functions in c ( read this: do cast result of malloc? )
in c syntax of typecast is:
(rhsdatatype) data; rhsdatatype should in parenthesis before data.
sometime in programming need typecast: example.
int = 2; int b = 3; double c = / b; this code outputs 0.0 because 2/3 both integers / result int 0, , assigns double variable c = 0. (what may not wants).
so here typecast solution, new code is:
int = 2; int b = 3; double c = (double)a / (double)b; it outputs real number output is: 0.666.
Comments
Post a Comment