What is the difference between int* n and int *n
If int *n, that is a fallacy that there are 2 type of variables. In fact, variable is a place holder of data only, the variant is the type of data it holds.
int is data structure of 4 bytes while int* is the one of 8 bytes (for 64 bit system).
#include <stdio.h>
#include <stdlib.h>
#include <sys/socket.h>
#include <sys/types.h>
#include <netdb.h>
#include <netinet/in.h>
#include <errno.h>
#include <string.h>
int main(int argc, char* argv[]){
int fd = socket(AF_INET, SOCK_DGRAM, 0);
unsigned int zero = 300;
// building address structure
struct in_addr* ipaddr = malloc(sizeof(struct in_addr));
if(ipaddr == NULL){
perror(strerror(errno));
}
zero = *((unsigned int*)ipaddr);
printf("size of struct in_addr*: %d\n", sizeof(struct in_addr*));
printf("size of int*: %d\n",sizeof(int*));
printf("%x\n",zero);
printf("ipaddr = %x",*((int*)(ipaddr)));
return 0;
}
No comments:
Post a Comment