digitalmars.D.learn - Checking C return results against NULL
- Laeeth Isharc (7/7) Dec 31 2014 Am I missing a more agreeable way to check the return value of a
- Rikki Cattermole (5/12) Dec 31 2014 == for value
- Mike Parker (7/20) Dec 31 2014 You can take your pick of these:
- Laeeth Isharc (2/2) Dec 31 2014 Thanks for the help.
Am I missing a more agreeable way to check the return value of a C function against NULL. It's fine if it's a char*, but if it returns a pointer to some kind of struct, one has to go through and convert each instance of NULL to a cast of the appropriate return type. Eg cast(funnystruct*)0 if ((tomime_fields.fld_description==cast(char*)0)) throw new Exception("show_part_info: description is NULL");
Dec 31 2014
On 1/01/2015 12:22 a.m., Laeeth Isharc wrote:Am I missing a more agreeable way to check the return value of a C function against NULL. It's fine if it's a char*, but if it returns a pointer to some kind of struct, one has to go through and convert each instance of NULL to a cast of the appropriate return type. Eg cast(funnystruct*)0 if ((tomime_fields.fld_description==cast(char*)0)) throw new Exception("show_part_info: description is NULL");== for value is for pointers if (tomime_fields.fld_description is null) throw new Exception("...");
Dec 31 2014
On 12/31/2014 8:29 PM, Rikki Cattermole wrote:On 1/01/2015 12:22 a.m., Laeeth Isharc wrote:You can take your pick of these: if( !ptr ) ... if( ptr == null ) ... if( ptr is null ) ...Am I missing a more agreeable way to check the return value of a C function against NULL. It's fine if it's a char*, but if it returns a pointer to some kind of struct, one has to go through and convert each instance of NULL to a cast of the appropriate return type. Eg cast(funnystruct*)0Actually, while 'is' does work for pointers, it's only necessary for references.if ((tomime_fields.fld_description==cast(char*)0)) throw new Exception("show_part_info: description is NULL");== for value is for pointers if (tomime_fields.fld_description is null) throw new Exception("...");
Dec 31 2014