Talk About Network

Google


Register and Login
Nick
Password
Register create new account Sign up is FREE and you can post replies, new topics, bookmark posts and more!
Recover lost password


Programming > C Moderated > Re: Non-null po...
Latest [ Topics | Posts ] Archive Post A New Topic Post a Reply
<< Topic < Post Post 12 of 49 Topic 1099 of 1161
Post > Topic >>

Re: Non-null pointers in C/C++?

by James Kuyper <jameskuyper@[EMAIL PROTECTED] > Jun 2, 2008 at 11:54 AM

angel_tsankov wrote:
> On 29 =ED=C1=CA, 18:58, James Kuyper <jameskuy...@[EMAIL PROTECTED]
> wrote:
>> angel_tsankov wrote:
>>> On 23 =ED=C1=CA, 23:57, jameskuy...@[EMAIL PROTECTED]
 wrote:
....
>>>> It would also have to be constraint violation for an
>>>> object with an unnullablepointertype to be left uninitialized. As a
>>>> result, I don't think it would be feasible to allow the space
>>>> containing an unnullablepointerobject to be allocated using the
>>>> malloc() family.
>>> One could have malloc2(), taking an unnullablepointerthat would
>>> serve as initilizer for the malloc'ed unnullablepointer.
>> The C standard currently allows for the possibility that pointers to
>> different types can have different representations, and even different
>> sizes. There are a number of good reasons why many real-world
>> implementations actually use two or more differentpointer
>> representations, depending upon the type of the object being pointed a=
t.
>> How could such an implementation implement malloc2() so it would know
>> which representation to use? It would be relatively straightforward to
>> handle that case by making malloc2() a C++ template function, but I
>> don't see any easy way to do it in C.
>=20
> I do not really get your point here... As far as I know malloc does
> not care about types - it only cares about allocating memory of the
> specified amount.

You are perfectly correct about malloc(); but we weren't talking about=20
malloc(), we were talking about malloc2(). As described above, it takes=20
an unnullable pointer argument that is used to initialize the memory=20
allocated by malloc2(). Since unnullable pointers could, presumably,=20
have many different types, with correspondingly different sizes and=20
different representations, malloc2() could not work without being type=20
aware. Here's code for a hypothetical language with C++ - style=20
templates and an 'unnullable' keyword:

template <type T> unnullable T** malloc2(unnullable T *t, size_t size)
{
     T** temp =3D malloc(size);
     if(temp)
         temp[0] =3D (T*)t;  // Must be type-aware

     return (unnullable T**) temp;
}

The marked line has to be type-aware, because sizeof(T*) can depend
upon=20
what T is.

>> Would it be prohibited for a structure to contain a member of unnullab=
lepointertype? If not, how do you tell malloc2() where to insert thepoint=
erthat it takes as an argument, when allocating space for such a
>> structure?

Have you figured out an answer to that question?

>> Could you allocate an array of unnullable pointers? Does that mean tha=
t
>> malloc2() would have to be prepared to accept an unlimited number ofpo=
interarguments as initializers, presumably by using a <varargs.h>
>> interface? Or would it initialize all of them to point at the same
>> object, and let them be reassigned later? Unlike the previous issues,
>> this one has at least two different perfectly feasible solutions; but
>> you'll have to choose one.
>=20
> Automatic arrays would either be randomly initialized or prohibited.

I thought that the point of unnullable pointers was to ensure that they=20
could not be null? If they can, under certain cir***stances, be
randomly=20
initialized, doesn't that defeat the purpose?
-- 
comp.lang.c.moderated - moderation address: clcm@[EMAIL PROTECTED]
 -- you must
have an appropriate newsgroups line in your header for your mail to be
seen,
or the newsgroup name in square brackets in the subject line.  Sorry.
 




 49 Posts in Topic:
Non-null pointers in C/C++?
angel_tsankov <fn42551  2008-05-13 01:06:32 
Re: Non-null pointers in C/C++?
Francis Glassborow <fr  2008-05-15 11:00:31 
Re: Non-null pointers in C/C++?
"Wojtek Lerch"   2008-05-22 16:51:34 
Re: Non-null pointers in C/C++?
gordonb.ll93b@[EMAIL PROT  2008-05-23 15:57:23 
Re: Non-null pointers in C/C++?
"Wojtek Lerch"   2008-05-24 18:15:37 
Re: Non-null pointers in C/C++?
angel_tsankov <fn42551  2008-05-22 16:51:43 
Re: Non-null pointers in C/C++?
jameskuyper@[EMAIL PROTEC  2008-05-23 15:57:09 
Re: Non-null pointers in C/C++?
angel_tsankov <fn42551  2008-05-28 13:35:14 
Re: Non-null pointers in C/C++?
James Kuyper <jameskuy  2008-05-29 10:58:00 
Re: Non-null pointers in C/C++?
James Kuyper <jameskuy  2008-06-01 12:35:06 
Re: Non-null pointers in C/C++?
angel_tsankov <fn42551  2008-06-01 12:35:16 
Re: Non-null pointers in C/C++?
James Kuyper <jameskuy  2008-06-02 11:54:23 
Re: Non-null pointers in C/C++?
angel_tsankov <fn42551  2008-06-10 00:56:47 
Re: Non-null pointers in C/C++?
James Kuyper <jameskuy  2008-06-12 19:25:13 
Re: Non-null pointers in C/C++?
angel_tsankov <fn42551  2008-06-14 03:02:07 
Re: Non-null pointers in C/C++?
angel_tsankov <fn42551  2008-06-18 08:45:23 
Re: Non-null pointers in C/C++?
angel_tsankov <fn42551  2008-06-18 08:45:31 
Re: Non-null pointers in C/C++?
angel_tsankov <fn42551  2008-06-28 19:04:48 
Re: Non-null pointers in C/C++?
gordon@[EMAIL PROTECTED]   2008-07-04 01:45:57 
Re: Non-null pointers in C/C++?
"Angel Tsankov"  2008-07-08 21:18:29 
Re: Non-null pointers in C/C++?
gordonb.4ax5t@[EMAIL PROT  2008-07-10 13:02:14 
Re: Non-null pointers in C/C++?
"Angel Tsankov"  2008-07-12 18:10:36 
Re: Non-null pointers in C/C++?
gordonb.4dbn6@[EMAIL PROT  2008-07-13 10:55:33 
Re: Non-null pointers in C/C++?
"Angel Tsankov"  2008-07-20 15:07:13 
Re: Non-null pointers in C/C++?
James Kuyper <jameskuy  2008-07-21 18:28:00 
Re: Non-null pointers in C/C++?
"Angel Tsankov"  2008-07-23 22:51:02 
Re: Non-null pointers in C/C++?
James Kuyper <jameskuy  2008-07-25 12:15:29 
Re: Non-null pointers in C/C++?
"Angel Tsankov"  2008-08-02 12:34:34 
Re: Non-null pointers in C/C++?
James Kuyper <jameskuy  2008-08-07 15:01:26 
Re: Non-null pointers in C/C++?
"Angel Tsankov"  2008-08-11 19:05:20 
Re: Non-null pointers in C/C++?
blargg.h4g@[EMAIL PROTECT  2008-08-14 15:29:10 
Re: Non-null pointers in C/C++?
jameskuyper@[EMAIL PROTEC  2008-08-14 15:29:37 
Re: Non-null pointers in C/C++?
"Angel Tsankov"  2008-08-20 21:30:20 
Re: Non-null pointers in C/C++?
John Nagle <nagle@[EMA  2008-08-14 15:30:30 
Re: Non-null pointers in C/C++?
"Mabden" <Ma  2008-08-09 12:08:24 
Re: Non-null pointers in C/C++?
Jasen Betts <jasen@[EM  2008-07-20 15:07:47 
Re: Non-null pointers in C/C++?
"Angel Tsankov"  2008-07-21 18:28:13 
Re: Non-null pointers in C/C++?
Francis Glassborow <fr  2008-07-04 01:46:17 
Re: Non-null pointers in C/C++?
James Kuyper <jameskuy  2008-06-12 19:32:35 
Re: Non-null pointers in C/C++?
Philip Lantz <prl@[EMA  2008-06-14 03:01:41 
Re: Non-null pointers in C/C++?
=?ISO-8859-1?Q?Hans-Bernh  2008-05-15 11:00:41 
Re: Non-null pointers in C/C++?
"Wojtek Lerch"   2008-05-22 16:51:39 
Re: Non-null pointers in C/C++?
angel_tsankov <fn42551  2008-05-22 16:51:46 
Re: Non-null pointers in C/C++?
Jonathan Leffler <jlef  2008-05-24 18:15:49 
Re: Non-null pointers in C/C++?
gordonb.vehsx@[EMAIL PROT  2008-05-15 11:00:54 
Re: Non-null pointers in C/C++?
Eric Sosman <Eric.Sosm  2008-05-22 16:51:21 
Re: Non-null pointers in C/C++?
angel_tsankov <fn42551  2008-05-22 16:51:53 
Re: Non-null pointers in C/C++?
Matthias Buelow <mkb@[  2008-05-23 15:57:49 
Re: Non-null pointers in C/C++?
Roberto Waltman <usene  2008-06-10 00:57:00 

Post A Reply:
  Go here to Signup

AddThis Feed Button


About - Advertising - Contact - Frequently Asked Questions - Privacy Policy - Terms of Use - Signup

Contact
tan12V112 Sat Oct 11 21:26:16 CDT 2008.