/*
 * demo_versions/malloc_no_cast.c
 * --------------------------------------------------------------------------
 * 演示：void* 隐式转换差异 —— C 合法，C++ 必须显式转换。
 *
 * 来源：wiki 块 [58954439:15]：C 中 `char* p = malloc(n);` 合法（void* 隐式转任意指针），
 * C++ 中 void* 不能隐式转其它指针，必须 `char* p = (char*)malloc(n);`。
 *
 * 验证：
 *   gcc -std=c17   → PASS（void* 隐式转换合法）
 *   g++ -std=c++17 → ERROR （invalid conversion from void* to char*）
 *
 * 运行：
 *   tools/std_probe.py --lang c   --file tools/demo_versions/malloc_no_cast.c
 *   tools/std_probe.py --lang c++ --file tools/demo_versions/malloc_no_cast.c
 * --------------------------------------------------------------------------
 */
#include <stdlib.h>

int main(void) {
    char* p = malloc(16);     /* C 合法；C++ 报 invalid conversion from void* to char* */
    if (p) free(p);
    return 0;
}
