非常に単純な質問ですが、次のプログラムを作成しました。
#include <stdlib.h>
int main(int argc, char ** argv)
{
void * ptr;
ptr = malloc(0);
free(ptr);
}
また、私のマシンではセグメンテーション違反はありません。stdlib malloc と free の移植可能な動作ですか、それともトラブルを探していますか?
編集: 移植性がないように見えるのは、malloc によって返される値です。問題は、ptr の値ではなく、malloc(0) + フリーの組み合わせに関するものです。