delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/1998/03/30/19:01:16

From: dmt AT bigfoot DOT com (Jeff W./DMT)
Newsgroups: comp.os.msdos.djgpp
Subject: Allegro load_datafile(..) crashes
Date: Mon, 30 Mar 1998 23:48:44 GMT
Organization: ZipLink -- America's Hottest ISP
Lines: 93
Message-ID: <35202d71.62791@news.ziplink.net>
NNTP-Posting-Host: chi-ip-1-150.ziplink.net
To: djgpp AT delorie DOT com
DJ-Gateway: from newsgroup comp.os.msdos.djgpp

I've successfully used the load_datafile(filename) routine a number of
times, however this time it's mysteriously crashing.  I was able to
figure out that a call to malloc(..) when creating the datafile
pointer was the culprit each time.  The only thing that I can think of
that may cause this problem is that in my c++ program, I have the
following set up:

typedef struct BaseType
{
 //base layer of tiles
 byte tileno; 
 byte opaque; 
 byte collision;
 byte flag;
};

typedef struct FringeType
//non-pickupable objects
{
 byte tileno;
 byte flag;
};

typedef struct ObjType
//normal objects
{
 byte tileno;
 byte active; //shouldit be blitted???
 byte flag;
};

typedef struct RoofType
//for the roof of buildings/etc
{
 byte tileno;
 byte flag;
};

typedef struct MapStruct
//just contains all the other structures into 1
{
 BaseType base;
 FringeType fringe;
 ObjType obj;
 RoofType roof;
};

class MapClass
{
 protected:
  MapStruct **Data;
...
public:
 void Init(int nrows, ncols)
...
};

the first thing my program does is to allocate memory for the Data
array.  I do this using the following code that I got out of the C++
FAQ:

void MapClass::Init(int nrows, int ncols)
{
  int total_cols[ncols];

  Data = new MapStruct*[nrows];
  for (int i=0; i < nrows; ++i)
     Data[i] = new MapStruct[ total_cols[i] ];

}

if the above puzzles you (it puzzles me, but seemed to work), what I'm
trying to do is at runtime, create an array of type MapStruct of size
[nrows][ncols].  That looked like the most plausible way to me in the
FAQ.  Anyways, my point is, anytime I do:
datfile = load_datafile("FILENAME");
my program crashes.  Does the problem have something to do with my
setup of the MapClass/Struct??  If so, can you suggest a solution, or
at least tell me where to look??  Thanks.



 --Jeff W.

 "The finding of DMT in normal human body fluids
 opens up interesting moral and legal questions.
 Since DMT is illegal, as is 'any substance, compound
 or mixture' containing DMT, it would seem that we
 are all guilty of possesion of a controlled substance"
 -Jonathon Ott

 My weird, trippy page:
 http://www.geocities.com/SunsetStrip/Alley/3450/index.html

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019