string to pointer

vsachar's Avatar, Join Date: Feb 2009
Go4Expert Member
Hi,
I'm writing an address into a file and later i need to read it as an address. I've copied this address into a character array and am having a lot of trouble trying to convert it back into a pointer.
The pointer initially (when writing to the file) was a void pointer.
Please help.
here's what i tried:

Code:
#include<iostream> 
#include<string> 
#include<stdio.h> 
#include<fstream> 
using namespace std; 
void * operator new(size_t size) 
{ 
    cout<<"\nOVERLOADED NEW"; 
    void * MemHandle; 
    MemHandle=malloc(size); 
    if(!MemHandle) 
    { 
        bad_alloc ba; 
        throw ba; 
    } 
    ofstream out; 
    out.open("D:/Project/abc.txt",ios::app); 
    out<<"\n"<<(unsigned long int*)MemHandle; 
    out.close(); 
    cout<<"\nmem handle:"<<MemHandle<<endl; 
    return MemHandle; 
} 
void main() 
{ 
    fstream in("D:/Project/abc.txt"); 
    int *p=new int; 
    char buf[20]; 
    in.getline(buf,8); 
    buf[8]='\0'; 
    cout<<"buf:"<<(unsigned long int*)buf; 
}
vsachar's Avatar, Join Date: Feb 2009
Go4Expert Member
The output was :

OVERLOADED NEW
mem handle:003552A0
buf:0012FE9


i needed the buf to hold the initial value.
Please help and Thanks in advance.
xpi0t0s's Avatar, Join Date: Aug 2004
Mentor
What does the file contain?
(If you open it in a hex editor then you'll know exactly. Try xvi32)
vsachar's Avatar, Join Date: Feb 2009
Go4Expert Member
Thank you but i got it. I wrote it as an unsigned long and read it back into a void * and it worked