Unable to assign zero to unsigned character array


 
Thread Tools Search this Thread
Top Forums Programming Unable to assign zero to unsigned character array
# 1  
Old 01-17-2013
Unable to assign zero to unsigned character array

Hi,

I am unable to assign value zero to my variable which is defined as unsigned char.

Code:
    typedef struct ABCD
   {
   unsigned char abc[6];
   unsigned char def;
   unsigned char ghi;
   } ABCD;
   typedef ABCD *PABCD;

In my Por*C code, i assign the values using memcpy like below

void abc(PABCD s_tag)
{
memset((char*)(s_tag), '0',sizeof(s_tag));
memcpy((char*)s_tag.abc,"000000",sizeof(s_tag.abc));
s_tag.def = 0;
s_tag.ghi=0;
}


In debug mode, i could see '\0'.....How to make the value as '0' only:confused:?

(dbx) print -L *s_tag
*s_tag = {
        s_tag.abc  = "000000"
        s_tag.def = '\0'
        s_tag.ghi = '\0'
         }

# 2  
Old 01-17-2013
I would not expect that code to compile as def, ghi are dereferenced incorrectly.

Further more, it's not clear what you mean when you say zero. Do you mean ASCII code zero or the character zero? You seem to have a mix of both.
# 3  
Old 01-17-2013
I have to get my values like below

(dbx) print -L *s_tag *s_tag = { s_tag.abc = "000000" s_tag.def = '0'Smilie s_tag.ghi = '0'Smilie }
but i am getting values like below:
(dbx) print -L *s_tag *s_tag = { s_tag.abc = "000000" s_tag.def = '\0'Smilie s_tag.ghi = '\0'Smilie }
I have written here sample code like mine. How to assign the value '0' to character array variable def which is defined in structure?
# 4  
Old 01-17-2013
This sets the character zero (not ASCII zero).
Code:
#include <string.h>

struct ABCD
{
    unsigned char abc[6];
    unsigned char def;
    unsigned char ghi;
};

void abc(struct ABCD* s_tag)
{
//  memset(s_tag, '0', sizeof(*s_tag));    // this or the stuff below

    memcpy(s_tag->abc, "000000", sizeof(s_tag->abc));
    s_tag->def = '0';
    s_tag->ghi = '0';
}

int main()
{
    struct ABCD var;

    abc(&var);

    return 0;
}


Last edited by kbw; 01-17-2013 at 07:54 AM..
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Assign two dimensional array in bash at once

Hi, I have a 10*10 two dimensional array. How do I assign value to all it's 100 elements at once? I don't want to open two for loops and assign one by one. Thanks, Amit (2 Replies)
Discussion started by: amit14august
2 Replies

2. Shell Programming and Scripting

Unable to assign a value

I have written a shell script to calculate dbsize :- db2 "call get_dbsize_info(?,?,?,-1)" | sed -n '8p' | awk -F : '{print $2}' dbsize=`db2 "call get_dbsize_info(?,?,?,-1)" | sed -n '8p' | awk -F : '{print $2}'` echo $dbsize when I execute it the syntax works but it's not... (11 Replies)
Discussion started by: lazydev
11 Replies

3. Shell Programming and Scripting

How to Assign an shell array to awk array?

Hello All, Can you please help me with the below. #!/bin/bash ARR="No Differences In Stage Between HASH_TOTALS & HASH_TOTALS_COMP For UNINUM:0722075 PROVIDER:5 EXTRACT_DT:30-SEP-12 VER_NUM:1" ARR="No Differences In Stage Between HASH_TOTALS & HASH_TOTALS_COMP For UNINUM:0722075 PROVIDER:5... (14 Replies)
Discussion started by: Ariean
14 Replies

4. Shell Programming and Scripting

Unable to read assign values to two variables in while loop

I am trying to read a input file which has two columns separated by space Input file server1 server2 server3 server4 server5 server6 When i execute the below while code it reads line by line and a and b variables are able to successfully fetch the values while read a b do echo "$a" echo... (5 Replies)
Discussion started by: chidori
5 Replies

5. Shell Programming and Scripting

Unable to assign command output to variable

Code set -x STATUS="0" echo $STATUS for i in `ls -ltr Report*|awk '{ print $9 }'` do if then flg = "`head -1 "$i" |cut -c 31-33`" echo `head -1 "$i" |cut -c 31-33` echo $flg if then echo "having Fun" STATUS="2" else echo "no Fun" fi fi (2 Replies)
Discussion started by: Funkeydude
2 Replies

6. Shell Programming and Scripting

Assign value to array separated by #

Hi all , I have a string like para1#para2#para3 i want to assign para1 as first element para2 as second and so on i tried IFS=# set -A array para1#para2#para3 echo ${array} para1 para2 para3 i want echo ${array} para1 (2 Replies)
Discussion started by: max_hammer
2 Replies

7. Shell Programming and Scripting

assign value to array variable

Hi, I have a piece of code as follows: i=0 while read LINE do var = "$LINE" i=$((i+1)) echo "${var}" done < file I want to assign value to the array var. However, when i execute the script i get a error. Please can you help me know what i am missing. I ultimately want to... (2 Replies)
Discussion started by: sunrexstar
2 Replies

8. Shell Programming and Scripting

How to assign a variable to an array

I want to ask the user to enter an X amount of file names. I want to put those names into an array and then loop back through them to verify they are in the directory. 1st- How would I assign the value to an array and what is the correct syntax. 2nd- how would i reference that array after I... (3 Replies)
Discussion started by: tvb2727
3 Replies

9. Shell Programming and Scripting

Unable to assign value to variable using awk coz of whitespace in value

Unix gurus, I have a file as below, which is basically the result set obtained from a sql query on an Oracle database. ID PROG_NAME USER_PROG_NAME -------- --------------- ---------------------------------------- 33045 INCOIN Import Items 42690 ... (3 Replies)
Discussion started by: sunpraveen
3 Replies

10. Shell Programming and Scripting

assign awk array with printf

I am trying to assign a awk array for further processing later in the script. I can't seem to figure it out. If someone could look at this and help me, I would very much appreciate it. Thanks in Advance. for ( x = 1 ; x <= Var ; x++ ) { if ( x in varr ) { ... (2 Replies)
Discussion started by: timj123
2 Replies
Login or Register to Ask a Question