Date: Wed, 2 Aug 2000 23:13:05 +0400 (MSD) From: .@babolo.ru To: "Daniel C. Sobral" <dcs@newsguy.com> Cc: chris@calldei.com, freebsd-hackers@FreeBSD.ORG Subject: Re: malloc to arrays? Message-ID: <200008021913.XAA00739@cicuta.babolo.ru> In-Reply-To: <39879ECA.61855D9D@newsguy.com> from "Daniel C. Sobral" at "Aug 2, 2000 01:08:42 pm"
next in thread | previous in thread | raw e-mail | index | archive | help
> Chris Costello wrote: > > On Wednesday, August 02, 2000, .@babolo.ru wrote: > > > Sorry I have no other direction to ask this: > > > I have declaration: > > > > > > u_int32_t *(tcpcash_addr[256]); > > > > > > and want malloc some memory for tcpcash_addr: > > > > > > tcpcash_addr = (typeof(tcpcash_addr))malloc(u_int32_t * 256 * n); > > > > > > and have an error: > > > > > > ra-sum.c:386: cast specifies array type > > > *** Error code 1 > > > > Try this: > > > > u_int32_t *tcphash_haddr; > > tcphash_addr = malloc(sizeof(*tcphash_addr) * 256); > > > > You shouldn't be casting malloc and I don't see any reason > > to use *(foo[nmemb]) syntax. > > u_int32_t **tcphash_haddr; > > From the code, it's a variable-sized array of fixed-sized arrays. Yes, and whan I use u_int32_t *(tcpcash_addr[256]) declaration, I can use tcpcash_addr[x][y], and I must use tcpcash_addr[x * 256 + y] if declaration is u_int32_t *tcphash_haddr, I cant use if u_int32_t **tcphash_haddr, because of need of array of pointers in addition to array of arrays, and the only clean but not nice way I know is struct tcphash_haddr {u_int32_t tcpcash_addr[256];}; struct tcphash_haddr *tcphash_haddr; but tcphash_haddr[x].tcpcash_addr[y] is not so clear as tcpcash_addr[x][y]... Is the reason to use *(foo[nmemb]) syntax clear enough? And more, in the original code not malloc but mmap... tcpcash_addr = (typeof(tcpcash_addr))mmap( NULL, ... so using of pointers is dirty enougth. and more, assign without a cast impossible: ra-sum.c:385: incompatible types in assignment And even u_int32_t *(tcpcash_addr[256]); tcpcash_addr = (void*)mmap( NULL, ... does not translated -- Александр А. Бабайлов mailto://babolo@links.ru/ http://links.ru/ To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-hackers" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200008021913.XAA00739>