943,829 Members | Top Members by Rank

View Poll Results: What do you think is the best OS for developers?
Windowes 2000/XP/2003 Server 4 50.00%
Linux 2.x.x 3 37.50%
OS 10.x.x 1 12.50%
OS 9.2.x 0 0%
Voters: 8. You may not vote on this poll

Ad:
  • C++ Discussion Thread
  • Unsolved
  • Views: 4578
  • C++ RSS
Sep 9th, 2003
0

dynamic memory alloc with "new" freezes OS9.2

Expand Post »
Hello,
I really don't know if this is more of a Mac of C++ question but.. I am doing a loading of a file with
"
short CSVload (char * filename) //called from main
{
//openning a file and checking if it exists
FILE * datafile = NULL;
if ((datafile=fopen (filename, "r"))==NULL)
{
printf ("\nError - no file found");
return -1;
}
//finding size of the file
fseek (datafile,0,SEEK_END);
int filesize = ftell (datafile);
rewind (datafile);
//allocating a string of a size of a file
char * data;
data = new char (filesize+2); //+2 just to be safe
//reading file (I am using getc but I simplified for this post)
fscanf (datafile,"%s", data);
//closing file
fclose (datafile);
//printing the file
printf ("\nThe data is:\n%s",data);
//deleting data
delete [] data;
//returning success
return 0;
}
"
and the program seems to be freezing every time I call this function.. I have asked somebody why this code doesn't work on OS 9.2 on G3 and the answer was that maybe I am allocating onto the system memory since OS9.2 doesn't protect it's memory like win2k or redhat 9.0 linux (my other systems). My compiler is a very old Code Warrior 7.0 Gold Edition (I usually don't use Mac's, nor this version of CW (I am only doing mac now because of my internship)).
If you can, please help,
Thank you in advance,
Ilya
Reputation Points: 13
Solved Threads: 0
Junior Poster in Training
Valmian is offline Offline
82 posts
since Sep 2003
Sep 9th, 2003
0

Re: dynamic memory alloc with

Quote originally posted by Valmian ...
Hello,
I really don't know if this is more of a Mac of C++ question but.. I am doing a loading of a file with
"
short CSVload (char * filename) //called from main
{
//openning a file and checking if it exists
FILE * datafile = NULL;
if ((datafile=fopen (filename, "r"))==NULL)
{
printf ("\nError - no file found");
return -1;
}
//finding size of the file
fseek (datafile,0,SEEK_END);
int filesize = ftell (datafile);
rewind (datafile);
//allocating a string of a size of a file
char * data;
data = new char (filesize+2); //+2 just to be safe
//reading file (I am using getc but I simplified for this post)
fscanf (datafile,"%s", data);
//closing file
fclose (datafile);
//printing the file
printf ("\nThe data is:\n%s",data);
//deleting data
delete [] data;
//returning success
return 0;
}
"
and the program seems to be freezing every time I call this function.. I have asked somebody why this code doesn't work on OS 9.2 on G3 and the answer was that maybe I am allocating onto the system memory since OS9.2 doesn't protect it's memory like win2k or redhat 9.0 linux (my other systems). My compiler is a very old Code Warrior 7.0 Gold Edition (I usually don't use Mac's, nor this version of CW (I am only doing mac now because of my internship)).
If you can, please help,
Thank you in advance,
Ilya

Alright, first of all... man you've really mixed C with C++ If you're going to use C you ought to use malloc() and free() and not new and elete. Anyway, try: char *data = (char *)malloc(sizeof(char) * (filesize + 2)); fscanf("%s",&data) (that's off the top of my head). Seriously though, use malloc and free from now on!!!!!

Sorry I really hate C++ and when it's mixed in with C is makes my heart frown
Reputation Points: 44
Solved Threads: 1
Junior Poster
subtronic is offline Offline
117 posts
since Aug 2003

This thread is more than three months old

No one has posted to this discussion for at least three months. Please let old threads die and do not reply to them unless you feel you have something new and valuable to contribute that absolutely must be added to make the discussion complete. Otherwise, please start a new thread in this forum instead.
Message:
Previous Thread in C++ Forum Timeline: Canvas and shape problem
Next Thread in C++ Forum Timeline: Dia, .PDB files





About Us | Contact Us | Advertise | Acceptable Use Policy
Forum Index | Build Custom RSS Feed


Follow us on Twitter


© 2011 DaniWeb® LLC