Velocity Reviews - Computer Hardware Reviews

Velocity Reviews > Newsgroups > Programming > C++ > Pointer conversion problem

Reply
Thread Tools

Pointer conversion problem

 
 
Kat
Guest
Posts: n/a
 
      04-26-2006
Ok so I finally fixed most of the problems in this program but I've
come up with even more. My program(if you saw earlier) is a program
for secure file deletion as part of a project. I'm using Visual Studio
6.0(my school refuses to upgrade, I don't know why nor can I persuade
them otherwise) Visual C++.

Here's a snippet of the code I'm having problems with.

//Begin Code\\

long size;

infile.seekg(0,ifstream::end);
size = infile.tellg();
infile.seekg(0);
infile.close();

ofstream outfile (fileloc,ofstream::binary);

outfile.write (zero,size);

//End Code\\

Bellow is the error given by the compiler.

//Begin Error\\

Z:\SecureIO.cpp(172) : error C2664: 'write' : cannot convert parameter
1 from 'const int *' to 'const char *'
Types pointed to are unrelated; conversion requires
reinterpret_cast, C-style cast or function-style cast

//End Error\\

How do I fix this problem?

 
Reply With Quote
 
 
 
 
Peter Jansson
Guest
Posts: n/a
 
      04-26-2006
Kat wrote:
> Ok so I finally fixed most of the problems in this program but I've
> come up with even more. My program(if you saw earlier) is a program
> for secure file deletion as part of a project. I'm using Visual Studio
> 6.0(my school refuses to upgrade, I don't know why nor can I persuade
> them otherwise) Visual C++.
>
> Here's a snippet of the code I'm having problems with.
>
> //Begin Code\\
>
> long size;
>
> infile.seekg(0,ifstream::end);
> size = infile.tellg();
> infile.seekg(0);
> infile.close();
>
> ofstream outfile (fileloc,ofstream::binary);
>
> outfile.write (zero,size);
>
> //End Code\\
>
> Bellow is the error given by the compiler.
>
> //Begin Error\\
>
> Z:\SecureIO.cpp(172) : error C2664: 'write' : cannot convert parameter
> 1 from 'const int *' to 'const char *'
> Types pointed to are unrelated; conversion requires
> reinterpret_cast, C-style cast or function-style cast
>
> //End Error\\
>
> How do I fix this problem?
>


Hi,


How is zero defined? What requirements do you have on "secure file
deletion" - to fill it with \0's or many '0' characters, or perhaps
random bits?

Look at what the compiler tells you, there is the answer to your question.


Regards,

Peter Jansson
http://www.p-jansson.com/
http://www.jansson.net/
 
Reply With Quote
 
 
 
 
Jim Langston
Guest
Posts: n/a
 
      04-27-2006

"Kat" <> wrote in message
news: ups.com...
> Ok so I finally fixed most of the problems in this program but I've
> come up with even more. My program(if you saw earlier) is a program
> for secure file deletion as part of a project. I'm using Visual Studio
> 6.0(my school refuses to upgrade, I don't know why nor can I persuade
> them otherwise) Visual C++.
>
> Here's a snippet of the code I'm having problems with.
>
> //Begin Code\\
>
> long size;
>
> infile.seekg(0,ifstream::end);
> size = infile.tellg();
> infile.seekg(0);
> infile.close();
>
> ofstream outfile (fileloc,ofstream::binary);
>
> outfile.write (zero,size);


How is zero defined? By your error message it would seem it's defined as in
integer pointer. But you want to write a character. Is it an array?
Simplest way would be to make zero a character (array?) of '\0' instead of
an int with value 0. Of course the size of it has to be as big as size
though.

I believe what you actually want to do here is write the character '\0' size
times. You can either create an array and initialize it to '\0'
(std::vector<char> perhaps) or put your write in a for loop writing one char
size times.

char zero = '\0';
for ( int i = 0; i < size; ++i )
outfile.write(&zero, size);

is one way of doing it.

An alternative is to simply cast your zero to a char pointer, as long as you
know that it's the proper size. I wouldn't do this, however, I'd just make
it chars.

> //End Code\\
>
> Bellow is the error given by the compiler.
>
> //Begin Error\\
>
> Z:\SecureIO.cpp(172) : error C2664: 'write' : cannot convert parameter
> 1 from 'const int *' to 'const char *'
> Types pointed to are unrelated; conversion requires
> reinterpret_cast, C-style cast or function-style cast
>
> //End Error\\
>
> How do I fix this problem?
>



 
Reply With Quote
 
 
 
Reply

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
Pointer to pointer Vs References to Pointer bansalvikrant@gmail.com C++ 4 07-02-2009 10:20 AM
Pointer to pointer conversion WaterWalk C Programming 3 05-23-2008 05:46 AM
passing the address of a pointer to a func that doesnt recieve a pointer-to-a-pointer jimjim C Programming 16 03-27-2006 11:03 PM
Pointer-to-pointer-to-pointer question masood.iqbal@lycos.com C Programming 10 02-04-2005 02:57 AM
pointer to pointer conversion pw4getter C++ 5 03-05-2004 11:41 PM



Advertisments
 



1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57