ビヘイビアーの実装は定義されていますか? NULLとサイズ== 0がrealloc()
に渡された場合:NULLとサイズ0がrealloc()に渡されるとどうなりますか?
int main(void)
{
int *ptr = NULL;
ptr = realloc(ptr, 0);
if(ptr == NULL)
{
printf("realloc fails.\n");
goto Exit;
}
printf("Happy Scenario.\n");
Exit:
printf("Inside goto.\n");
return 0;
}
上記のコードは右、 "reallocのに失敗した" 印刷する必要がありますか?そうではありません?私はrealloc
へのこの呼び出しがNULLも返す可能性があると読んだところです。それはいつですか?
[Realloc on NULL値(または未定義)ポインター]の可能な複製](http://stackoverflow.com/questions/12134315/realloc-on-null-valued-or-undefined-pointer) –
可能な重複はありません'void * vp = realloc(NULL、0);'の動作の特定のポイントに対処していません。 –
私はここで@Jonathanに同意します。引用されたdupには0要素のrealloc'ingの振る舞いと戻ってくるポインタに関する情報がないと思われます。古いMicrosoftプラットフォームでは、0個の要素を割り当てるときに問題がありました。 – jww