X-Authentication-Warning: delorie.com: mail set sender to djgpp-bounces using -f From: "Alex Vinokur" Newsgroups: comp.os.msdos.djgpp Subject: Re: Trouble of using very large arrays Date: Fri, 23 Apr 2004 12:00:28 +0300 Lines: 50 Message-ID: References: NNTP-Posting-Host: 82.166.218.223 X-Trace: news.uni-berlin.de 1082710830 10324064 I 82.166.218.223 ([79865]) X-Priority: 3 X-MSMail-Priority: Normal X-Newsreader: Microsoft Outlook Express 6.00.2800.1106 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1106 To: djgpp AT delorie DOT com DJ-Gateway: from newsgroup comp.os.msdos.djgpp Reply-To: djgpp AT delorie DOT com "Brian Inglis" wrote in message news:urih80l3b6om4kbblr8jthpjbm1i7cp6gc AT 4ax DOT com... > On Thu, 22 Apr 2004 20:10:08 +0300 in comp.os.msdos.djgpp, "Alex > Vinokur" wrote: > > > a = (unsigned int*)malloc (rows * columns * sizeof (unsigned int)); > > Nitpicks: > > -- avoid casting malloc results, as it is unnecessary to cast a void > pointer to any other type of pointer, but the explicit cast will mask > not declaring malloc or including stdlib.h, and also mask assignment > to a non-pointer type; I prefer to compile C-program with C++ compiler. So, if foo.c contains ----------------------------------------------------------- a = malloc (rows * columns * sizeof (unsigned int)); ----------------------------------------------------------- We have $ gpp foo.c error: invalid conversion from `void*' to `unsigned int*' > > -- avoid using types for sizes, in case someone later changes the > assigned pointer type; use object sizes instead; Good point! Thanks. > > this is cleaner and more maintainable: > ------ With C-compiler ------ > a = malloc(rows * columns * sizeof *a); ------ With C++-compiler ------ a = (unsigned int*)malloc(rows * columns * sizeof *a); > [snip] -- Alex Vinokur mailto:alexvn AT connect DOT to http://mathforum.org/library/view/10978.html