| www.delorie.com/archives/browse.cgi | search |
| From: | "Red Angel" <red DOT angel AT flashnet DOT it> |
| Newsgroups: | comp.os.msdos.djgpp |
| Subject: | R: Dinamic allocation |
| Date: | Sun, 20 Jun 1999 00:25:07 +0200 |
| Organization: | Customer of Flashnet S.p.A. - http://www.flashnet.it |
| Lines: | 92 |
| Message-ID: | <7kh5jo$9cq$1@news.flashnet.it> |
| References: | <LOBBKLEPLBKLOKFELHOIAELGCCAA DOT djgpp AT niemeyer DOT net> |
| NNTP-Posting-Host: | pppn-22.to2.flashnet.it |
| X-Trace: | news.flashnet.it 929831352 9626 195.191.110.26 (19 Jun 1999 22:29:12 GMT) |
| X-Complaints-To: | abuse AT flashnet DOT it |
| NNTP-Posting-Date: | 19 Jun 1999 22:29:12 GMT |
| X-Priority: | 3 |
| X-MSMail-Priority: | Normal |
| X-Newsreader: | Microsoft Outlook Express 5.00.2014.211 |
| X-MimeOLE: | Produced By Microsoft MimeOLE V5.00.2014.211 |
| To: | djgpp AT delorie DOT com |
| DJ-Gateway: | from newsgroup comp.os.msdos.djgpp |
| Reply-To: | djgpp AT delorie DOT com |
Try this:
char **spans;
spans = (char **) malloc(MAXHEIGHT*sizeof(char*));
for(i=0; i<MAXHEIGHT; i++)
spans[i] = (char *) malloc(MAXWIDTH*sizeof(char));
or in another way:
char *spans;
spans = (char *) malloc(MAXHEIGHT*MAXWIDTH*sizeof(char));
(in this way you have to know that you have a one dimensional array so if
you want to do a thing like :
spans[y][x]=1 you can't in this way but you have to do this :
spans[(y*x)+x]=1)
Red Angel
Gustavo Niemeyer <djgpp AT niemeyer DOT net> wrote in message
LOBBKLEPLBKLOKFELHOIAELGCCAA DOT djgpp AT niemeyer DOT net...
> Thank you for your answer Antonio!
>
> I had to change some thing in your code to
> compile it. Code now looks like this:
>
> char **spans;
>
> spans = (char **) malloc(MAXHEIGHT);
>
> for(i=0; i<MAXHEIGHT; i++)
> spans[i] = (char *) malloc(MAXWIDTH);
>
>
> But it isn't working anyway! I tried to delete the
> second line but it didn't work again...
>
> By the way, I can't understand why the old code isn't
> working...
>
>
> Thank you!
>
>
> Gustavo Niemeyer
>
>
> -----Original Message-----
> From: Antonius Steinkamp [mailto:Antonius DOT Steinkamp AT t-online DOT de]
> Sent: Sexta-feira, 18 de Junho de 1999 22:34
> To: djgpp AT delorie DOT com
> Subject: Re: Dinamic allocation
>
>
> try to allocate this way
> spans = (char*)malloc(MAXHEIGHT)
> for ( int i=0; i<MAXHEIHT; i++) {
> spans[i] = (char)malloc(MAXWIDTH);
> }
> this is not tested but should work (aka indexes)
>
> Gustavo Niemeyer schrieb:
> >
> > Hi there!
> >
> > I think I'm doing some thing wrong here.
> >
> > When I try to hard code an array like this:
> >
> > char spans[MAXHEIGHT][MAXWIDTH];
> >
> > So the program runs ok. But when I try to
> > use dinamic memory allocation like this:
> >
> > char **spans;
> > spans = (char **) malloc(MAXWIDTH*MAXHEIGHT*sizeof(char));
> >
> > When I run the program it prints a General
> > protection fault error, pointing to a loop
> > that accesses the array.
> >
> > Probably is something I'm missing... isn't it?
> >
> > Thank you
> >
> > Gustavo Niemeyer
>
| webmaster | delorie software privacy |
| Copyright © 2019 by DJ Delorie | Updated Jul 2019 |