
我在MacOSX10.11上运行Xcode7.1。我试图用C语言声明一个VLA数组,但是我做不到。
第二次我在数组声明中使用变量时,这是没有意义的。不会创建数组。我翻遍了编译器的设置,试着手动安装了GCC,我搞不懂。有人能发现问题所在吗?据我所知,从C99开始,VLA就成为了标准,而且我可以说我的Xcode是在C11上运行的。这是怎么回事?代码和设置图像包括在内。
void printTriangle (int height, char rowPatterns[][height]) {
int rowSize = 2 * height - 1;
char rowString[rowSize]; //string to store in pattern's array
int characterCount = rowSize; //number of character printed per row of triangle
int asteriskCount = 1; //number of asterisks printed in each row
int spaces = (characterCount - asteriskCount) / 2; //how many spaces need to be printed in this current row
int rowCount;
// rest of the code...
}



发布于 2015-10-22 17:07:14
与任何其他局部变量一样,VLA甚至可能在您第一次使用它之前都没有被分配。现代编译器并不一定会在声明点分配局部变量,因此,试图在声明点之后立即在调试器中查看VLA的内容是没有意义的。
https://stackoverflow.com/questions/33276898
复制相似问题