Я бег Xcode 7.1 на Mac OS X 10.11. Я пытаюсь объявить массив VLA в C, но я не могу этого сделать.
Второй я использую переменную в объявлении массива, это спорный вопрос. Массив не создается. Я выкопал в настройках компилятора, попытался установить GCC вручную, я не могу понять это. Может ли кто-нибудь определить проблему? Из того, что я понимаю, VLA стал стандартным с C99 и из того, что я могу сказать, что мой 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...
}
Как называется 'printTriangle'? – Downvoter
printTriangle (высота, узоры); Это не проблема объявления функции - я открыл совершенно другой проект Xcode и попытался создать массив переменной длины, и это не сработало. Переменная была там, но никогда не инициализировалась. Даже не было пустых значений. Просто переменная char с ... ничего. –
Что вы имеете в виду, когда говорите, что объявление является «спорным»? Вы получаете ошибки компилятора? Runtime падает? Неожиданные результаты? Кроме того, если вы хотите сохранить строку в строке rowString, не должно ли она быть 'rowSize + 1' байт, чтобы она соответствовала терминатору строк? –