I'm trying to drop (meaning zero the bit) the LSB from an address. The below piece of code which I wrote doesnt seem to do the thing I intended to do.
#include<stdio.h>
#include<stdlib.h>
#include<stdint.h>
struct node
{
unsigned long key;
struct node* child[2];
};
int main()
{
struct node* node = (struct node*) malloc(sizeof(struct node));
printf("%x\n",node);
node = (struct node*)((uintptr_t) node >> 1UL);
printf("%x\n",node);
}