C++ :: Dereferencing Char Pointers?

Nov 5, 2012

why doesnt the following program work as expected:

Code:
char x = 0xff;
char* y = &x;
if(*y == 0xff)
{
return 1;
}
return 0;

imo, it should return "1", but it doesnt. It seems like instead of comparing 0xff == 0xff, the compiler compares 0xffffffff == 0xff. Why?

If i use "byte" for this example, everything works as expected, even though it`s just defined as an "unsigned char".

Code:
typedef unsigned charbyte;

View 4 Replies


ADVERTISEMENT

C++ :: Dereferencing Void Pointers Through The Way Of Typing It

Jan 11, 2014

I want to know how to dereference a void pointer through the way of typing it.

Lets just say that I malloc'd a huge bunch of memory and i can do whatever i want

void* randomData = malloc ( 1000000 );

And i decide to make my own virtual 'int'

I am not sure how to do this.

*( int* ) ( randomData + 10 ) = ( int ) 323453 //323453 can be an int variable aswell

Im not sure if this is the right way to do perform a dereference.

This is an overview of what has to be done:
-The pointer has to be dereferenced
-Cast the pointer as an int pointer so we can change it like a normal 4-byte int
-Perform pointer arithmetic, so that the int can be placed anywhere we want

View 8 Replies View Related

C++ :: Comparing Char Pointers To Integer Pointers

May 21, 2013

I am a little confused while comparing char pointers to integer pointers. Here is the problem:

Consider the following statement;
char *ptr = "Hello";
char cArr[] = "Hello";

When I do cout << ptr; it prints Hello, same is the case with the statement
cout << cArr;

As ptr and cArr are pointers, they should print addresses rather than contents, but if I have an interger array i.e.
int iArr[] = {1, 2, 3};

If I cout << iArr; it displays the expected result(i.e. prints address) but pointers to character array while outputting doesn't show the address but shows the contents, Why??

View 2 Replies View Related

C++ :: Initializing Array Of Char Pointers Directly

Nov 24, 2014

I'm learning OpenGL using the C API and some of the functions' argument types have proven a bit challenging to me.

One example is the function Code: glShaderSource(GLuint shader, GLsizei count, GLchar const** string, GLint const* length); It resides in foo() which receives a vector "data" from elsewhere Code: void foo(std::vector<std::pair<GLenum, GLchar const*>> const& data); To pass the pair's second element to glShaderSource's third argument, I do the following:

Code:

GLchar const* const source[] = {data[0].second};
glShaderSource(..., ..., source, ...);

Now I have two questions regarding this:

1. Can I initialize a char const** via initialization list, the way I do a char const*?

Code:

// this works
std::vector<std::pair<GLenum, GLchar const*>> const shader_sources = {
{GL_VERTEX_SHADER, "sourcecode"},
{GL_FRAGMENT_SHADER, "sourcecode"}
};
// but is this possible?

std::vector<std::pair<GLenum, GLchar const**>> = { ??? };

2. Is there an alternative to creating a temporary GLchar**, even though that's specifically what the function wants?

View 2 Replies View Related

C :: Local Variables - Swap Char Pointers

Apr 23, 2013

I have the following code. According to this the values of pointers p[0] and p[1] remains unchanged since the swap is made to local variables in swap function.Now my doubt is how can I swap the pointers p[0] and p[1] inside the function swap??

Code:

#include<stdio.h>int main(){char*p[2]={"hello","good morning"};
swap(p[0],p[1]);
printf("%s %s",p[0],p[1]);return0;
}void swap(char*a,char*b){char*t; t=a; a=b; b=t;
}

View 5 Replies View Related

C++ :: Char Pointers And Random Binary Files

May 6, 2013

I'm new with working with random binary files. I have a class with a char* pointer stored inside of it, I also have a constructor that takes in a string (of any size) from the user. I then simply store this string into the char *. Once the string is stored in the char *. I reinterpret the instance, and I store the information into the random binary file. Everything works.

Question: Random files must know the size of the object that is being stored inside of it, so why when I enter strings of different sizes into the file, it appears to still be working. for example this is an example of the code:

class info {
private:
char *phrase;
public:
info(string n ="unknown"){
phrase = new char[n.size()+1];

[Code] ....

My point is, lets just say for example the object ETC, was some long string, this would still work for me. My question is, I don't believe each object is the same size because I allocate memory for the char pointer in the constructor.

Should I not do this just to be safe, and just use a char array instead of a pointer? (Even tho I would have set a pre-defined size for the string) or is something happening in the back to prevent this from not working?

View 5 Replies View Related

C :: Dereferencing Of Void Pointer

Apr 14, 2014

I could understand void pointers I created the following program:

Code:
#include <stdio.h>
#include <string.h>
int main(void) {

char word[] = "Zero";
int number = 0;
void *ptr = NULL;

[Code] .....

The program works fine, however i really want to fully understand what is going on with the dereferencing of the void pointer, for example: With the following code:

Code:
ptr = &number;
*((int *)ptr) = 1;

Why can't you just do:

Code:
ptr = &number;
*(int *)ptr = 1;

And again with this code, (i'm guessing it's becuase its a pointer to a pointer?):

Code:
ptr = &word;
strcpy(ptr,"One");

View 2 Replies View Related

C/C++ :: Dereferencing Pointer To Incomplete Type

Feb 27, 2014

keep getting "deferencing pointer to incomplete type" on the bold lines:

main:
int main(int argc, char *argv[]) {
printf("Please think of an animal. I will try to find out what it is by asking you some yes/no questions.");
struct treenode *root = mkTreeNode("Is it a reptile?
", NULL, NULL);
struct treenode *selectedNode = root;
root->left = mkTreeNode("Does it have legs?

[code]....

View 14 Replies View Related

C++ :: Storing Data As Void And Dereferencing Them Later?

Jan 15, 2013

I have a set of functions at work which are incredibly useful, however it only supports labels that come from a specific database because that database contains information on the type. I'd like to re-create it to make it more applicable to any member/static/global variables but don't know how to store the type.

I've already re-written it to an extent, but it only accepts int types. I'd like to template it to accept any type. The trick is storing that type so that the pointer can be dereferenced at a later time which I don't know how to do.

Interface:

typedef int T; // The goal is to remove this line!
namespace TimerDelay {
void SetAfterDelay ( T* lpLabelAddress, float delay, T target = T(1)); // Queues the set
void ManageDelays ( float dt ); // sets the labels when appropriate
}

Source:

#include <vector>
namespace TimerDelay{
struct DelayObject {
void* address; // I will probably need to add a container
void* target; // to hold the type, but how can this be done?

[code]....

Edit:Is it possible to store a std::iterator_traits<> struct as a member of my structure? The g_list isn't templated as it needs to accept all types at the same time. That means that DelayObject cannot be templated. I think that means that I cannot use a templated member class as the size may be inconsistant.

View 2 Replies View Related

C :: Error - Dereferencing Pointer To Incomplete Type

Feb 21, 2015

I've been writing the math functions for a 3d game and tried compiling it at about 30 functions in. I get this error related to my pointers to my structures. it affects almost everything in all my functions (as youll see by looking at how i do the math in the function below). The compiler gives me the error

"error: dereferencing pointer to incomplete type"

on all my struct Type4D pointers but referencing the values in my struct TypeMatrix4X4 using pointers seems to work fine i think (it doesn't seem to complian explicitly about it. so here is the important code...

one example function

Code:
struct Type4D *MatVecMult4X4RtoL(struct TypeMatrix4X4 *mat, struct Type4D *vec) {
struct Type4D *dest = (struct Type4D *) malloc(sizeof(struct Type4D));

[Code]....

View 2 Replies View Related

C++ :: Performance Penalty For Repeatedly Dereferencing A Pointer?

Oct 2, 2013

Let's assume "person" is a class that has a member "age", and personptr is a pointer to a person object.

doStuff(personptr->age);
doMoreStuff(personptr->age);
andSomethingElse(personptr->age);
andSomethingElse(personptr->age);

Is this bad for performance? Is the following better or doesn't it matter?

int person_age = personptr->age;
doStuff(person_age);
doMoreStuff(person_age);
andSomethingElse(person_age);
andSomethingElse(person_age);

View 2 Replies View Related

C++ :: Error Dereferencing Pointer To Incomplete Type

Jul 10, 2013

I am having trouble with this program I get the error dereferencing pointer to incomplete type in the populate function I am using BloodShed's Dev C++ compiler v4.9.9.2 I copied this program out of a book because I was having a problem with a linked list in a similar program. I think there is a problem with the compiler not supporting these types of pointer's in a function.

#include <stdio.h>
struct tel_typ {
char name[25];
char phone_no[15];
struct tel_typ *nextaddr;

[code].....

View 3 Replies View Related

C/C++ :: Error / Dereferencing Pointer To Incomplete Type

Sep 13, 2014

I am getting this error:

drivers/media/video/mxc/capture/gt2005.c:2256:62: error: dereferencing pointer to incomplete type

I am at a loss trying to figure this out. Here it is:

case Sensor_Flash:
{
struct i2c_client *client = to_i2c_client(to_soc_camera_control(icd));
struct sensor *sensor = to_sensor(client);
if (sensor->sensor_io_request && sensor->sensor_io_request->sensor_ioctrl) {
sensor->sensor_io_request->sensor_ioctrl(icd->pdev,Cam_Flash, on);
if(on){

Lines 6 and 7 are giving me the same error. What am I doing wrong?

View 14 Replies View Related

C++ :: Operator Overloading And Mysterious Object Dereferencing?

May 7, 2015

This is the main header with three classes, in summary ADNodeInstance is a data holder, ADNode is encapsulating a pointer to ADNodeInstance, and ADGraphBuilder is a main class which holds all the ADNodeInstances and manages them.:

Code:
#ifndef ADVIBE_STACK_H
#define ADVIBE_STACK_H
#include "memory"
#include "iostream"
#include "fstream"
#include "Eigen/Dense"
typedef Eigen::MatrixXd Matrix;

[Code] ....

From this all I could infer is that in the funcreateGradientMessage on the switch for TANH the segfault occurs for the expression: directGradient * child * (1 - child). From the output I can see that this is what happens in order:

Unary negation on node 5 resulting in 15Addition of node 16 and 15 (e.g. the brackets) resulting in 17trying to multiply 14 and 5 - SEGFAULT something wrong with 5

So my question is what exactly is happening? I tried to understand but can't.

View 2 Replies View Related

C :: Create Array Of Pointers To Pointers Which Will Point To Array Of Pointers

Feb 28, 2014

I'm trying to create an array of pointers to pointers which will point to array of pointers (to strings) I tried

Code:

int i;
char *string[]={
"my name is dave",
"we like to dance together",
"sunny day",
"hello",

[code]...

the app keeps crashing , I don't know how to make the array-elements to point to another array-elements..

View 4 Replies View Related

C++ :: Read Text File Char By Char By Using Vector Class

Oct 29, 2014

Code:

cout<<"Enter Filename for input e.g(inp1.txt .... inp10.txt):"<<flush;
cin>>filename;
ifstream inpfile;
inpfile.open(filename,ios::in);
if(inpfile.is_open())

[Code] .....

View 8 Replies View Related

C++ :: Comparing Char Array To Char Always Returns True

Dec 23, 2014

I've made a code to check whether or not a save file has been created correctly, but for some reason it always returns this line: readdata[qa]=='1' as true. in which qa is the counter I use in a for loop and readdata is a character array consisting of 50 characters that are either 0, 1 or 2.

this is the entire code:

#include <iostream>
#include <fstream>
#include <string>
using namespace std;

[Code]....

at first is also went wrong at line 22 and also returned that as true, but then I added brackets and it worked.

View 4 Replies View Related

C++ :: Concatenate Two Char Arrays Into Single Char Array?

Sep 29, 2014

I am trying to concatenate two words from a file together. ex: "joe" "bob" into "joe bob". I have provided my function(s) below. I am somehow obtaining the terminal readout below. I have initialized my memory (I have to use dynamic, dont suggest fixing that). I have set up my char arrays (I HAVE TO USE CHAR ARRAYS (c-style string) DONT SUGGEST STRINGS) I know this is a weird way to do this, but it is academic. I am currently stuck. My file will read in to my tempfName and templName and will concatenate correctly into my tempName, but I am unable to correctly get into my (*playerPtr).name.

/* this is my terminal readout
joe bob
<- nothing is put into (*playerPtr).name, why not?
joe bob joe bob
seg fault*/
/****************************************************************/
//This is here to show my struct/playerInit

[Code]....

View 2 Replies View Related

C :: Char Array With A Phrase To Char Word

Nov 28, 2013

I need to do a function that copy every word from a text to a char word. How can i do it?

View 5 Replies View Related

C++ :: Dynamic Creation Of Arrays Of Pointers To Arrays Of Pointers

Apr 15, 2013

I'm trying to write a function that takes a 32bit address and a data to store at this address.

I'm wanting to take the 32 bit memory address eg 0x12345678 and split it
into 4 x 2 bytes
12, 34, 56, 78

then each of the 4 entries is at most a 256 entry array.eg
FF, FF, FF, FF

So in this example, 0x12 points to 0x34 in the second array, which points to 0x56 in the third array, which finally points to 0x78 in the last array. This last array holds the actual data.

After successfully doing 0x12345678, say I might get a read for 0x1234AABB. So, the first and second pointers already exist, but I then have to create and write to dynamically created arrays.

The arrays need to have all entries set to NULL so that i know whether to follow the pointers to overwrite a previously entered value or create new arrays and pointers.

It all looks good and simple in the pseudo code I've written up but I'm having trouble coding it. I'm currently trying to deal with the first entry case, ie all array elements are NULL, but I'm getting confused with the pointers and creation of new arrays.

void cpu::store(unsigned int mem_add,unsigned int mem_val) {
int first = (mem_address&4278190080)>>24;
int second = (mem_address&16711680)>>16;
int third = (mem_address&65280)>>8;
int fourth= (mem_address&255);

[Code] .....

A1 has been declared as
int* A1[256] ;

View 3 Replies View Related

C++ :: How To Convert Char To Const Char

Jun 3, 2013

I have a file which contains a year and the name of an associated file to be read. I need to extract the data in the txt file and perform some calculations.

( year data file)
2004 2004data.txt
2005 2005data.txt
2006 2006data.txt

Here is what I do. I first declare "char yeardata" and then pass "2004data.txt" to it. Then I call yeardata in ifstream to extract the data inside the file "2004data.txt". The problem is that char yeardata is not constant so I cannot pass the file to it. It doesn't work if I change "char yeardata" to "const char yeardata".

Code:
int oldnewcomp_temp(char* lcfile) {
using namespace std;

int year;
char yeardata;

[Code] ....

View 12 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/C++ :: Char To Hexadecimal - Hexadecimal Back To Char

Sep 9, 2014

I'm trying to write a program that takes input from the user (thats a char) and outputs it to the monitor in hex form.The program is meant to continuously take input from the user then output to the monitor in hex form until an EOF is detected this triggers the program to close.The following code does this except that I get a lower case 'a' at the end of each output.

example:

input from user: ABC
output to monitor: 41 42 43 a

#include <stdio.h>
int main(void) {
char myChar;

[Code]....

View 3 Replies View Related

C++ :: When To Use Pointers

Apr 4, 2013

give me a few solid examples for when one should use pointers.

View 14 Replies View Related

C :: Gcc Compiler And Pointers

Mar 3, 2013

The first sample program that I am reading on the book has the following code:

Code:

* Demonstrates basic pointer use. */
#include <stdio.h>
/* Declare and initialize an int variable */
int var = 1;
}

[code]....

Is this a compiler error or is there a proper syntax for pointers using the gcc compiler?

View 3 Replies View Related

C++ :: Use Different Pointers For Arrays?

Dec 24, 2013

So when if you want to change the values themselves for example in an array (just for example) this is valid;

void test(int* test)
{
test[0] += 10;
}
int bob[] {1, 3, 5};

If you did that bob[0] would not equal 11. All well and good right?

Now if you do this?

int sally = 33;
test(sallay);

This wouldn't work at all you actually have to use

void test(int& test)
{
test += 10;
}

how the memory addresses etc. are working here? I don't understand why you need to use & the reference operator if it's not an array? Why wouldn't that still work?

View 3 Replies View Related







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