![]() |
| ||
| quick question: how to 'null' blocks of an unsigned char array Hi there, Say I have a payload: 1) unsigned char apayload[] = {'H','i',' ','T','h','e','r','e'}; And then I have another payload, which is the same as above but with an additional 2 characters: 2) unsigned char received_payload[]={'H','i',' ','T','h','e','r','e,'a','b''}; How would I go about making the second payload exactly the same as the first payload? I basically want to null out array blocks [8] and [9] of the second payload so that the characters 'a' and 'b' are ignored basically no longer exist so it becomes a payload of size [8] like the first one. I am trying this at the moment but it does not work as I guess it is just adding "0" as a character to the array and not terminating that block all together. for (int i=8;i <10; i++) received_payload[i] = 0; Thankyou!! |
| ||
| Re: quick question: how to 'null' blocks of an unsigned char array >>How would I go about making the second payload exactly the same as the first payload? You can't without reallocating the entire string because the way the arrays are declared there is no room for expansion. BTW: neither apayload nor received_payload are null-terminated strings. When you initialize character arrays like that using individual characters the array is nothing more than an array of characters, so you can't use string functions on them such as strlen() to get the number of characters. >>I am trying this at the moment but it does not work as I guess it is just adding "0" as a character to the array and not terminating that block all together. Yes, that only replaces the character with 0, it does not change the array size. You will have to reallocate the array if you want to make it smaller. But I don't think its worth the effort. Just put a 0 there and treat it like any other null-terminated string. |
| ||
| Re: quick question: how to 'null' blocks of an unsigned char array Quote:
If I wanted to do the same sort of thing with strings but then convert it using c_str() is there a way to add to the c_str() function to do this or would I have to re-allocate etc first before using c_str()? Ie if I wanted to convert the first 8 characters of the string using c_str() but ignore the last 2 characters, can I instruct it to do this with c_str() or would I have to change the string to get rid of characters 9 and 10 before hand? |
| ||
| Re: quick question: how to 'null' blocks of an unsigned char array Hi possibly you want that second array of chars behaves like first on, as in: int main() {You may consider what I added to the initialization of both arrays. Also consider this solution will produce memory leaks.krs, tesu |
| ||
| Re: quick question: how to 'null' blocks of an unsigned char array Quote:
std::string = "Hello World"; |
| All times are GMT -4. The time now is 8:42 am. |
Forum system based on vBulletin Copyright ©2000 - 2009, Jelsoft Enterprises Ltd.
©2003 - 2009 DaniWeb® LLC