forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   C++ (http://forum.boolean.name/forumdisplay.php?f=22)
-   -   Размер массивв (http://forum.boolean.name/showthread.php?t=16798)

impersonalis 17.05.2012 12:12

Размер массивв
 
Вложений: 1
Очевидная и общепринятая вещь: размер (автоматического) массива должен задаваться константой. Это же можно прочитать у Страуструпа (2011 г):

Вложение 16869

ЕМНИП, на старой доброй 6-ой студии так и было.
(upd: на "2008 экспресс" тоже не собирается с однозначным указанием на проблему.)
Внезапно, нижеследующий код успешно транслируется и выполняется (GCC):

Код:

#include <iostream>
#include <stdlib.h>
using namespace std;

int main()
{
    int x;
    cin>>x;
    char t[x];
    for(int j=0;j<x-1;j++){
        t[j]=33+rand()%20;
    }
    t[x-1]=0;
    cout<<t<<endl;

    return 0;
}

Выделенная строка соответствует коду, помеченному в книге как ошибочный.

как жить дальше?

den 17.05.2012 12:33

Ответ: Размер массивв
 
Цитата:

Сообщение от google (Сообщение 228092)
Это расширение С - С99, не включённое в стандарт C++. gcc позволяет использовать некоторые расширения C99 при программировании на C++, но не внутри классов. Динамические массивы C99 создаются на стеке, и память ими занимаемая автоматически освобождается при выходе из функции.

1234


Часовой пояс GMT +4, время: 07:57.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot