次のようなコードに出くわしました:
/* Allocate memory for _ptr */
if(*((void **) &(_ptr)) != (void *) NULL)
{
/* free _ptr */
}
以下と何が違うの?
/* Allocate memory for _ptr */
if (_ptr != NULL )
{
/* free _ptr */
}
編集: _ptr は任意のタイプである可能性があります。実際には、これは次のようなマクロです。
#define RETURN_MEM_CHK(_ptr) \
{if(*((void **) &(_ptr)) != (void *) NULL){/* free _ptr */}
混乱を招いてすみません。