The puzzle for malloc some spaces for a key


 
Thread Tools Search this Thread
Top Forums Programming The puzzle for malloc some spaces for a key
# 1  
Old 10-26-2010
The puzzle for malloc some spaces for a key

Hi, all,

I am writing a BST (Binary Search Tree).

What I am concerned about is

Code:
typedef struct BST{
    struct BST *p_left;
    struct BST *p_right;
    void *p_data;
    char *p_key;
    unsigned int *length;
}BST;

I have to malloc some space for p_key.

How many of chars should I malloc?

a) malloc(sizeof(char)*(strlen(insert_p_key))

b) or malloc(sizeof(char)*(strlen(insert_p_key)+1)

For option a), I will strcpy(p_bst->p_key,insert_p_key).

For option b), I will strcpy(xxxxx) and p_bst->p_key[strlen(insert_p_key)]='\0'.

Can anyone tell me which one is correct?

Or both?

What are the advantages and flaws of the two?

Thank u

Last edited by Scott; 10-26-2010 at 04:21 AM.. Reason: Code tags, please...
# 2  
Old 10-26-2010
strlen()+1, to give room for the null terminator. strlen() would be one short.

Don't bother putting a null-terminator on after strcpy, it will already have one.

"u" is not a word.
# 3  
Old 10-26-2010
Quote:
Originally Posted by Corona688
strlen()+1, to give room for the null terminator. strlen() would be one short.

Don't bother putting a null-terminator on after strcpy, it will already have one.

Thank u
# 4  
Old 10-26-2010
Quote:
Originally Posted by mythmgn
Thank u
You can thank me by using english. "U" is not a word, and netspeak gibberish isn't allowed here.
# 5  
Old 10-26-2010
Even better, use:

Code:
strdup()

Login or Register to Ask a Question

Previous Thread | Next Thread

7 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Another sed Syntax Puzzle . . .

Greetings! Have a quick question for the community today; this time looking at a nifty little sed puzzle ;) Consider the following file content to be worked through:What needs to happen is theblock should be removed up to and including the following blank line, leavingI have bits and pieces... (8 Replies)
Discussion started by: LinQ
8 Replies

2. Solaris

Swap puzzle

I'm getting confused by swap # swap -l swapfile dev swaplo blocks free /dev/zvol/dsk/rpool/swap 256,2 16 16777200 16777200 /dev/zvol/dsk/swappool/swap2 256,1 16 50331632 50331632 # swap -s total: 6710256k bytes allocated + 3402944k reserved = 10113200k used,... (6 Replies)
Discussion started by: redstone
6 Replies

3. Shell Programming and Scripting

A puzzle with a printing function executing in background

Somebody on a thread in the (french) Mandriva Forum recently suggested a script, designed to provide a tool to display kind of "temporisation widgets" on the console (to be ultimately pasted in other more complex scripts). One version of this script was something like the following, which seems... (6 Replies)
Discussion started by: klease
6 Replies

4. UNIX for Advanced & Expert Users

Chroot jail environment puzzle

I have a simple sandbox program which runs a command as user "nobody" in a chroot jail. It sets resource limits with setrlimit, changes the user id with setuid, changes the root dir with chroot, and then calls exec to execute the command given as command line parameters. It is of course a... (8 Replies)
Discussion started by: john.english
8 Replies

5. IP Networking

Puzzle about sctp_bindx in UNP

It writes in Section 9.3 in Unix Network programming about SCTP: "The sctp_bindx call can be used on a bound or unbound socket." And then it writes: "The port number in all the socket address structures must be the same and must match any port number that is already bound; if it doesn't, then... (0 Replies)
Discussion started by: tomdean001
0 Replies

6. Linux

It's a puzzle

Hi, Recently I installed Fedora 9 on the following hardware - Asus A8N-SLI Deluxe motherboard bios version 1805 - 2GB twinmos ram - AMD 4400 CPU - Tagan PSU 550 W - Asus EN6200LE video card - WD 74 GB Raptor - Areca ARC-1222 raid controller - 4x 1TB Seagate Baracudas - Symbios Logic... (6 Replies)
Discussion started by: jwoude
6 Replies

7. Shell Programming and Scripting

Alias escape puzzle

Here is "escape puzzle" from real life task: Conditions: We need to create an alias which will Save current directory path Will ssh to particular server Then will cd to saved path (it's mounted via NFS) Then will find all files with name patter as "All*.bld" and run particular editor... (0 Replies)
Discussion started by: BaruchLi
0 Replies
Login or Register to Ask a Question