Posts Tagged ‘ address

Reference vs. Pointer

In Software Engineering Project course we need to learn some C++ to develop the project. A question that some programmers have when passing from Java to C++ (like me) is “Which are the differences between pointers and references?“. You can find a lot of answers around developers forum, but I summarized them in the following table. Glad if you found it useful!

Reference Pointer
is an object which IS AN ALIAS for another object is an object that CONTAINS THE ADRRESS IN MEMORY of another object
the preferred way of undirectly access objects you should use it just if you really need it, as it lets you to work in a lower level than a reference does
keeps your code clear the code is less clear but still understandable
it must be initialized when created you don’t have to initialize it when declared
it references to the one object and only that one, therefore you can not modify the address referenced because it contains an address, it can point to many different objects during lifetime. The address can be manipulated
when used, the address is dereferenced without using any particular operator the address must be dereferenced using the * operator

Related posts

New domain: from daniel.graziotin.net to bd-things.net

As I previously announced, I purchased a brand new domain for my stuff.
The blog is changing during the months, becoming more than a blog but less than a site.
That’s because I decided to buy the domain BD-things.net, because this site contains all of my things, files, thoughts, projects, publications.
The old address daniel.graziotin.net now redirects permanently here and every link should have been updated/rewritten. Please contact me if you encounter problems.
I also took BD-blog.net which points here, too, but I won’t renew it the next year.
Some things are different now, but you won’t notice it ;)
I obviously lost my decent position at Netcraft’s Most Visited Web Sites rank list, but I don’t care. It will be funny to advance with the new domain and reach a even better position!
I hope there will be a new beginning and a brand new life with BD-things!

Related posts

Cambio contatto MSN

ENGLISH VERSION
Caro utente della mia lista di MSN Messenger, cambio contatto.
Per ragioni tecniche, politiche e legate al buonsenso, non utilizzerò più Microsoft Windows Live Messenger nè il suo protocollo di rete MSN Messenger. Mi darò al protocollo Jabber/XMPP.
Non volendo però perdere te e gli altri circa 200 contatti di Messenger, Read more

Related posts

Change MSN address

VERSIONE IN ITALIANO
Dear Msn buddy, I’m going to change account.
For technical and political reasons I won’t continue to either use Microsoft Window Live Messenger or its protocol MSN Messenger.
I’m going to use Jabber/XMPP.
I would like to keep in touch with you and my other 200 contacts, so I decided to Read more

Related posts

Hash Maps with linear probing and separate chaining

Time for two new C programs! At the DSA course I learned something about Hash Tables and collision resolutions.
I just implemented insert/search/print operations.

The first source code is an implementation of a Hash Map with open addressing (linear probing) as collision resolution method.
The following are the interesting functions of the program. As always, take a look at the source code for comments:

// hashMapLinear[] is the hash map
void linearProbingInsert(int value){
    int probe = hash(value);
    while (hashMapLinear[probe]!=0){                            
        probe = fmod((probe+1),SIZE_HASH_MAP);
    }
    hashMapLinear[probe] = value;
}

int linearProbingSearch(int value){
    int probe = hash(value);  
    int i;
    for(i=0;i<size_hash_map ;i++){    
        if(hashMapLinear[probe]==value)
            return TRUE;                            
        probe = fmod((probe+1),SIZE_HASH_MAP);              
    }
    return FALSE;                                          
}
 

Download: hash-map-linear-probing.c

The second program is an implementation of a Hash Map with chaining as collision resolution method.
Interesting functions:

// t_hashTableNode is a struct that is created as single linked list
void chainedHashInsert(int value){
    int probe = hash(value);                        
    if(hashMapChained[probe] == NULL){          
        hashMapChained[probe] = malloc(sizeof(t_hashTableNode));
        hashMapChained[probe]->value = value;
        hashMapChained[probe]->next = NULL;
    }else{
        t_hashTableNode *hashTableNode = hashMapChained[probe];
        while(hashTableNode->next!=NULL){
            hashTableNode = hashTableNode->next;
        }
        hashTableNode->next = malloc(sizeof(t_hashTableNode));
        hashTableNode->next->value = value;
        hashTableNode->next->next = NULL;
    }
}

int chainedHashSearch(int value){
    t_hashTableNode *hashTableNode = hashMapChained[hash(value)];
    while(hashTableNode!=NULL){
        if(hashTableNode->value==value){
            return TRUE;
        }
        hashTableNode = hashTableNode->next;
    }
    return FALSE;
}
 

Download: hash-map-chaining.c

Related posts

Where to find Archlinux in a VPS hosting service

You can find your favourite linux distribution at linode.com, a great hosting service where I’m transferring my blog and all other services I need. They offer great cheap VPS solutions, and you can choose Archlinux from the available linux distributions.
Archlinux is currently in testing: for example, ssh will not work after a fresh install. Here I’m going to explain how to fix this and how to access your VPS.

After the installation of Archlinux, if you try to connect to ssh, you will receive this error:

ssh yourUsername@yourIP
ssh: connect to host yourIP port 22: Connection refused

That’s because Archlinux does not install the openssh server by default. Let’s install it!
Linode offers a workaround to connect to your machines, called Lish, the LInode SHell. From this shell, you will be able then to connect to your machines.

ssh yourLinodeUsername@yourLinodeHost.linode.com

Where yourLinodeUsername is the username you chose for Linode registration, and yourLinodeHost is the host address of the machine (you can see it in this page, after a login: https://www.linode.com/members/remote.cfm, it’s in the form hostNUMBER).

You will be then prompted to Archlinux console. Use your root access and install ssh:

pacman -Sy
pacman -S openssh

Add sshd to your deamons array in /etc/rc.conf

DAEMONS=(… sshd …)

If you try to connect to your account via ssh, you will get another error at this time, because you need to allow external internet connections to the ssh daemon.
Your /etc/hosts.allow should look like this:

sshd: ALL

Start opensshd (/etc/rc.d/sshd start) or reboot the machine, you’re finished!

Related posts