WIN32与其他c字符串之间的差异

WIN32与其他c字符串之间的差异,c,arrays,string,pointers,C,Arrays,String,Pointers,我在一个读取文件的小程序中得到了以下代码: #ifdef WIN32 unsigned char *buffer = (unsigned char *)alloca((unsigned int)ui.length); #else unsigned char buffer[ui.length]; #endif 为什么Win32平台使用指针,其他平台使用字符数组?以前似乎不支持C99在堆栈上定义可变长度数组。阿洛卡基本上做到了这一点。似乎这个程序员有一个不支持VLA的WIN32编译

我在一个读取文件的小程序中得到了以下代码:

#ifdef WIN32
    unsigned char *buffer = (unsigned char *)alloca((unsigned int)ui.length);
#else
    unsigned char buffer[ui.length];
#endif

为什么Win32平台使用指针,其他平台使用字符数组?

以前似乎不支持C99在堆栈上定义可变长度数组。阿洛卡基本上做到了这一点。似乎这个程序员有一个不支持VLA的WIN32编译器,所以使用了(支持良好但非标准的)alloca


更多关于堆栈溢出的信息:Arthur在堆栈溢出文章中提到了这一非常有用的数组摘要。

以前似乎不支持C99在堆栈上定义可变长度数组。阿洛卡基本上做到了这一点。似乎这个程序员有一个不支持VLA的WIN32编译器,所以使用了(支持良好但非标准的)alloca


更多关于堆栈溢出的信息:这是Arthur在堆栈溢出文章中提到的非常有用的数组摘要。

Windows中没有什么特别之处。差异是微软Visual C++(C99特性),作者可能认为MSVC==Win32,因此创建了条件。

< P> Windows中没有什么特殊的。差异是微软Visual C++(C99特性),作者可能认为MSVC==Win32,因此创建了条件。