C :: Unsigned Char - Pointer Type Casting

Dec 2, 2013

I came across some code and it's not clear why it is casting an unsigned char * to another pointer type only to free it right after. Here are the relevant structures:

Code:
struct _Edje_Message {
Edje *edje;
Edje_Queue queue;
Edje_Message_Type type;
int id;
unsigned char *msg;

[Code] .....

As you can see, _Edge_Message has a *msg field, but in the function below, they cast it to the other two structure types inside the case blocks of the switch statement only to free it. What is the point or advantage of doing this?

Code:
void
_edje_message_free(Edje_Message *em) {
if (em->msg) {
int i;
switch (em->type) {

[Code] ......

View 14 Replies


ADVERTISEMENT

Visual C++ :: Convert BITMAPINFO Header Into Unsigned Char Pointer?

Jan 10, 2014

I have a bitmap header information in the struct

typedef struct tagBITMAPINFO {
BITMAPINFOHEADER bmiHeader;
RGBQUAD bmiColors[1];
} BITMAPINFO

The total size of this is 1080.

Now i want to convert this into a unsigned char pointer.

unsigned char * pBMPHeaderData;

I already got the raw image data in another unsigned char buffer.

unsigned char* pRawBMPData;

Now i want to make a complete BMP image by adding the header info and raw data into a new unsigned char pointer. For this i need to convert the BITMAPINFO struct into a unsigned char *

So the new buffer will be,

unsigned char * pCompleteBMPIMageData = pBMPHeaderData + pRawBMPData;

how to do this?

View 3 Replies View Related

C++ :: Making Function To Read Unsigned Integer Into Variable Of Type Unsigned Short Int

Apr 3, 2014

How can i write a function that will read an "unsigned integer" into a variable of type "unsigned short int"? i can not use cin >> inside the function.. so i am looking for atleast a hint!

View 16 Replies View Related

C++ :: Type Conversion - Float Or Double Variable Into Unsigned Char Variable And Back

May 10, 2013

I would like to convert a float or double variable into unsigned char variable and back.

float number_float = 23.453f;
unsigned char* number_char = (unsigned char*)malloc(sizeof(float));
number_char = reinterpret_cast<unsigned char*> (&number_float);
float* number_float_0 = reinterpret_cast<float*>(&number_char);

I am not getting the same value back.. why?

View 2 Replies View Related

C :: Array Of Char Pointer Type Mismatch

Apr 20, 2013

I have an array of char pointers:

Code: char *input_args[MAX_ARGS];

And I have this function:

Code: BOOL parseArgs(char **input_args[], input arg_num);

I am trying to pass a pointer to this char pointer array like this:

Code: parseArgs(&input_args, args_num);

But the compiler is complaining:

Code: warning: passing argument 1 of 'parseArgs' from incompatible pointer type ...

note: expected 'char ***' but argument is of type 'char * (*)[20]'

Tried a bunch of stuff but nothing works.

View 4 Replies View Related

C++ :: Does Uses Of Pointer In Char Type Cause Extra Overhead

Sep 8, 2014

Does uses of pointer in char type cause extra overhead?

View 7 Replies View Related

C++ :: Copying Two Unsigned Char Into Unsigned Char

Mar 30, 2014

unsigned char key[32];
139 unsigned char rfseed[32];
173 f = fopen("/dev/urandom","rb");
174 fread(key,1,32,f);
175 fread(rfseed,1,32,f);

I am having problems copying outputs of the above code into other unsigned char other[32]. I need to keep the output of dev/urandom for backup. But, when I try to assign the values by memcpy(other, key, 32), the values do not match. The same problem happens by assigning values index by index in a loop.

View 2 Replies View Related

C++ :: Wrong Return Type When Returning Char Array As Pointer

Apr 25, 2014

I am writing a class Player which has several char arrays as private fields. I am trying to write a method which returns an array as a pointer, but doesn't alter the array in any way, thus the const.

Here is a snippet:

Code: class Player
{
private:
char state[MAX_STATE_CHAR + ONE_VALUE];
int rating;
char last[MAX_NAME_CHAR + ONE_VALUE];
char first[MAX_NAME_CHAR + ONE_VALUE];
int groupNumber = NEG_ONE;
public:
char * GetFirst() const
{
return first;
}

Visual studio is saying that the return type doesn't match.

View 3 Replies View Related

C++ :: How To Use Type Casting In Programs

Apr 12, 2013

I find type casting to be very hard to grasp, I am not sure why. I understand how it works I suppose, but I find it hard to grasp why it would be needed in programming. So my question is, how often is type casting used in general programs? Is there an easier way I could be trying to teach myself about it? I am just using the tutorials provided by this site.

View 2 Replies View Related

C/C++ :: Casting Error Char To Int

Apr 30, 2014

I'm writing a small piece of code that increments through a string of numbers. For every 5 numbers a product is produced. However i'm having an issue understanding an error that keeps occurring.

#include <iostream>
#include <string>
#include <cstdlib>

[Code].....

if you look at the code i've got a string with 5 numbers 1-5 for testing. As the loop increments through the string it takes the first 5 characters and converts them to integers and then a product is returned. The issue is that instead of storing the single letter at position J its storing some combination from the string and as a result gives me a huge product. I tried debugging. I checked what the string[j] value was with a simple cout << and it returned the right number. I even returned the char value before it was converted into an integer and it was the right number.

View 3 Replies View Related

C :: Utilizing Type Casting Construct

Apr 13, 2014

This code i made, utilizing the type casting construct, isn't outputting what i wanted. The output for 'Dollars' and 'Cents' are returning '0' for both. instead all i want it to do is seperate the two. for example changing the float value of amount to an integer, giving a dollar value.

Code:

#include <stdio.h>
int main()
{
}

[code]....

View 1 Replies View Related

C++ :: Validity Of New / Delete Pair (or Malloc / Free) After Pointer Casting

Dec 22, 2012

Goal: To allocate some memory as a char*, read in some binary data, re-interpret it as a float* and then free the memory.

My code looks like:

void someFunction(float* &result) {
char * tmp = new char[1000];
//...Fill the char buffer here...
result = (float*)tmp; //Reinterpret binary data as floats

[Code] ....

Is the cast back to char* necessary on the red line (or could I have validly left it as float*)? Would it be different if I had written char * tmp = (char*)malloc(sizeof(char)*1000); on the blue line (and correspondingly used free (char*)floatData on the red line?

View 9 Replies View Related

C++ :: How To Print Unsigned Char

Apr 23, 2013

How do I print an unsigned char in c++? E.g.

unsigned char a[100] = "acdef";
wprintf(L"a is %u
", a);
wcout << "a is " << a << endl;

gives

a is 2880488
a is 002BF3E8

and not

a is acdef
a is acdef

??

what is the difference between unsigned char and char?

View 6 Replies View Related

C++ :: Getting Extended Unsigned Integer Type

Apr 15, 2013

Looking for extended unsigned integer class, that has custom lenght?

The reason i am asking is because i need an extremely large integer number, in fact one that has no theoretical limit(or at least an extremely large one).

View 4 Replies View Related

C++ :: How To Convert Unsigned Char To String

Oct 4, 2014

How do I convert a variable of type unsigned char to string.

View 9 Replies View Related

C++ :: Copy Unsigned Char Array Into Another

May 7, 2013

I am having some trouble performing this. I am not sure, if my unsigned char arrays are null terminated, but I don't think so. Here is my code: They are supposed to be byte arrays of size 16.

int setkey(unsigned char* ky) {
printf("INSIDE POLY-DEL ... key byte array passed in HEX:
");
int i;
for (i = 0; i < (int)16; i++)

[Code] .....

View 12 Replies View Related

C++ :: Using Char Instead Of Unsigned To Calculate Numbers?

Mar 10, 2014

How do you use char instead of unsigned to calculate numbers? This is using char only and nothing else.

Step 1: I ask the user to enter a number.
Step 2: User enters a number.
Step 3: Number user entered is going to be that number squared or cubed or w/e.

For example;
"Enter a number: " 3
" Number you entered multiplied four times: " 81 (Since (3)*(3)*(3)*(3) = 81)

Another example;
"Enter a number: " 5
" Number you entered multiplied four times: " 625 (Since (5)*(5)*(5)*(5) = 625)

Code:
Char num;
cout << "Enter a number";
cin >> num;
cout << "Number you entered multiplied four times: " << (num)*(num)*(num)*(num) << endl;

View 4 Replies View Related

C/C++ :: Incrementing Hex Key Unsigned Char Array

Nov 16, 2014

i wish to generate all possible key combinations ranging:

HEX: "0F FF FF FF FF FF FF FF" TO HEX: FF FF FF FF FF FF FF FF

i also test each key after incrementing by 1, for test i want the key to be a an unsigned char[8]

key start rang and end range can be initialize/declare in any format.

Problem is if :

unsigned char key[] = {0x0F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF};

then i can not increment this key by +1 , though if i initialize this key in decimal as:

unsigned long long key = 1152921504606846975;

then i can increment the key in for loop by key++ but then i cant convert it back into unsigned char array

i want to achieve something like this :

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
unsigned char key[] = {0x0F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF};
int main()
{

[code]...

In my programer i also have function that test each key but key has to be unsigned char...

View 2 Replies View Related

C++ :: Unsigned Char To String And Being Passed Into Function

Mar 24, 2015

I have the following code, but it crashes on the "data = " line...

Code:
void Test(string& data) {
unsigned char* msg = (unsigned char*)malloc(MAX_LENGTH));
...
data = string(reinterpret_cast<const char*>(msg), MAX_LENGTH);
}

I know I could just return string, but what is wrong with this code that is making it crash?

View 6 Replies View Related

Visual C++ :: Sending Unsigned Char To Listbox

Apr 9, 2015

Got something like the following. A button that read characters from a thrid party tool and sends it to a listbox. But the contant is not readable.

Code:
void dlg::sendtolistbox() {
unsigned char buf[250];
thirdparty.GetData(buf, len);
Sendmessage(hndl, listboxupdate,0 , (LPARAM)buf);
}
void Mydlg::UpdateListBox(wparam a,laparm b) {
m_listbox.AddString((LPCTSTR)b);
}

The characters show up in the list box as short unreadable characters. like it is chopped.

If i change to : Sendmessage(hndl, listboxupdate,0 , (LPARAM)&buf[15]);

Then I can see readable valid strings of up to 50 characters and then empty unreadable characters afterwards. I tried all kinds of things , including using CString, still did not work.

View 8 Replies View Related

C :: Large Integer Implicitly Truncated To Unsigned Type

Mar 10, 2014

I am using a structure , and when i am assing values i get the warning message , how do I avoid that ?

Code:

// header file
typedef struct {
unsigned _T_ipset:1;
unsigned RTCSetNewTime:1;
unsigned PassWord:1;
unsigned UserReset:1;
unsigned PCDEBUG:1;
unsigned PWRUP:1;
unsigned HostTaskShift:1;
unsigned TimeToConnMstr:1;
unsigned En_Display_Lcd:1;
}

[code]....

large integer implicitly truncated to unsigned type

View 1 Replies View Related

C++ :: How To Extract Positive Integer From Unsigned Char Array

Jan 13, 2015

I have an embedded microcontroller system communicating with a similar system by radio. The api for the radio requires data to be transmitted as an unsigned char array. It will always transmit a positive integer in the range 0 to 255.When I receive the data I am having difficult in extracting this positive integer.

Code:
unsigned char rxData[4]={'1','2','3',''};
int inVal=0;

//want to assign inVal whatever number was transmitted

E.g. 123

I've been at this for a week and have tried at least 10 different approaches including the use of the atoi(), copying the absolute value of each element of rxData into another char array, reinterpret_cast, and others.

View 13 Replies View Related

C++ :: Creating String Representation Of Unsigned Char Bits

Mar 5, 2014

I need to convert the bit representation of an unsigned char into a string.

so like 254 would be "11111111"

I'm having some trouble where no matter what number I try to convert I get 01111111.

string bin2string(unsigned char N) {
string sN(8,'0');
unsigned char X;
unsigned char Y = 0;
for(int i = 0; i < 8; i++){

[Code] ....

View 4 Replies View Related

C/C++ :: Reverse Order Of Bytes Unsigned Char Array?

Dec 1, 2014

I need fastest method to reverse order of bytes in my char array.

For example i have:

unsigned char buf[8];
// consider data stored in buf is 88 77 66 55 44 33 22 11
// how to reverse it to: 11 22 33 44 55 66 77 88
// currently i can do it by equal assignment , i make another buf like:
unsigned char buf_ok[8];

[Code] ....

// This does reverse the bytes as i want but its very slow , i am looking for fast method ..

View 3 Replies View Related

C :: Way To Free Unsigned Pointer Array In Best Way

Feb 24, 2013

how is the best way to free unsigned pointer array allocated with cmallc?

Code:

uint8_t *buf;
buf = cs_calloc(ca->len + 13);

i do like this , but i know this is not quite right , since i got compile warning passing argument 1 of ‘free’ makes pointer from integer without a cast

Code:

for (i = 0; i < ca->len + 13; i++)
{
free(buf[i]);
buf[i] = NULL;
}

free(buf); do i need to free each element of array like above?

View 6 Replies View Related

C++ :: Unsigned Char Array - Assigning Values Converted From Double

Aug 3, 2014

I'm having a pretty weird problem. I've created an unsigned char array for an image buffer:

buffer_rgb = new unsigned char[_w * _h * 3];
memset(buffer_rgb, 0x0, sizeof(unsigned char)* _w * _h * 3);

And I add pixel color values to it like so:

buffer_rgb[i] = ((unsigned char)(col[0] * 255));
buffer_rgb[i + 1] = ((unsigned char)(col[1] * 255));
buffer_rgb[i + 2] = ((unsigned char)(col[2] * 255));

Where col is a 'vec4' struct with a double[4] with values between 0 and 1 (this is checked and clamped elsewhere, and the output is safely within bounds). This is basically used to store rgb and intensity values.

Now, when I add a constant integer as a pixel value, i.e.:

buffer_rgb[i] = ((unsigned char)255;

Everything works as it should. However, when I use the above code, where col is different for every sample sent to the buffer, the resulting image becomes skewed in a weird way, as if the buffer writing is becoming offset as it goes.

These two images illustrate the problem:

tomsvilans.com/temp/140803_render_skew.png
tomsvilans.com/temp/140803_render_noskew.png

You can see in the 'noskew' image all pixels are the same value, from just using an unchanging int to set them. It seems to work with any value between 0-255 but fails only when this value is pulled from my changing col array.

Whole function is here:

// adds sample to pixel. coordinates must be between (-1,1)
void Frame::addSample(vec4 col, double contrib, double x, double y) {
if (x < -1 || x >= 1 || y < -_aaspect || y >= _aaspect) {

[Code] .....

View 1 Replies View Related







Copyrights 2005-15 www.BigResource.com, All rights reserved