This works, but I thought it was good practice for type safety to use C++ style casting, yet reinterpret_cast does not work in this instance as it fails:
ERROR: reinterpret_cast can not cast away const or other type qualifiers
and const_cast fails with:
ERROR: a const_cast can only adjust type qualifiers, it cannot change the underlying type
So what is the correct method of casting here assuming I can not change the library interface, and my data is kept in an std::string?
Is it possible to get the string representation of an int. So I mean if i have: 5, I want to get '5'.
I was searching in the internet and I found this solution:
Code: int number = 5; char c = number + '0'; which works fine for small numbers, but if I do: Code: int i; char c; for(i =0; i < 10000; i++) { c = i + '0'; printf("%c ", c); }
At some point some strange sings like %&/)/)$%&) are appearing, But i really need this huge numbers as well .. Is there any other way to do this??
In my refference book I have got a example with a part saying to access the a[4][0] element of the array (named a) with pointer this can be written:
*((int*)a+4)
I wonder if the cast is really required. The book says it is required so that the pointer arithmetic can be done properly. However I am not sure about it. When I work with pointers defined by myself I don't use casts similar to this one. Is there a difference between a self defined pointer and array name?
I am writing a program with FLTK and in event handling part wanted to send the address of the handler function to callback function. Type cast just does not work.
I want to cast "a pointer to a class member function which accepts one argument" to a void pointer. After all it is just an address. So it is logically possible to cast it. Isn't it? Actually an static_cast should be enough!
I cannot get the following to compile. The problem is the printf on the last line. I understand that printf requires a char (or pointer to char). I understand that I can convert between datatypes by putting the target data type in parenthises in front of the variable. But how do I cast the integer into a character and then get it's pointer to pass into printf?
Following is my code. I compile with gcc temp.c -o temp.
Note that I have tried many attempts at that last line and this is just the one that I really, really think should work (or is at least the closest to the correct answer).
This code shown below, using printf("%s", &(char)nextChar); returns
temp.c:26: error: lvalue required as unary '&' operand
If I try to use printf("%s", *(char)nextChar); I get the error
temp.c:26: error: invalid type argument of 'unary *' (have 'int')
This line printf("%s", (char)nextChar); returns the obvious
format '%s' expects type 'char *', but argument 2 has type 'int'
Code:
#include <stdio.h> int main() { printf("hello, world "); #if defined(SUNDIALS_EXTENDED_PRECISION)
Is it possible to handle situations where static cast fails. I have a sample code written belo:
typedef struct test { int a; int b; } tester; void setevent(void *in) { tester *recv = static_cast<tester*>(in);
[Code] ....
In above code when setevent is called with the tester object, there is no issue, but if we pass random value it leads to seg fault. This is because static_cast is not type_safe, but can it be handled in any other way?
I've got two classes, which are both derived from the same two base classes. Here's a representation of the actual code:
Code: #include <vector> class BaseClassA { }; class BaseClassB { }; class TestClassX : public BaseClassA, public BaseClassB
[code].....
Basically, I'd like to know if it is possible to cast directly from a BaseClassA pointer to a BaseClassB pointer, without casting to the child class first.
I programming currently something with OpenGL. Now I have written some wrapper classes, like Shader, Program .... All works fine, but I don't like to call Shader.GetHandle() every time I want to call a OpenGL function manually where I need the object handle/id. (GetHandle() returns the OpenGL ID of the object)
So now I wonder, is it possible to program it in C++ so, that I can put my objects to gl methods and c++ automatically pass the handle/id member to that function ? Is there maybe a operator that I can use for that?
I know that if I just use "return" by itself the warning goes away but fails to exit when the error occurs. I also believe this may not be the correct use of stderr. But I need the program to exit when an error has occurred.
I having a problem which I'm not able to resovle. I try to dereference a void pointer but I always get a C2440 error. It says: 'static_cast':void* cannot be converted in wqueue<T>. I tried different cast ways but I always get the same error. As far as I found out I should get the error if I try to dereference without cast but in my case I cast before and still get that error.
The log file gives me: In function ‘memFileAlloc’ assignment makes pointer from integer without a cast..When compiling the drivers for the Matrox card in the DL580. The offending code is: