Показать сообщение отдельно
Старый 17.05.2012, 12:12   #1
impersonalis
Зануда с интернетом
 
Аватар для impersonalis
 
Регистрация: 04.09.2005
Сообщений: 14,014
Написано 6,798 полезных сообщений
(для 20,935 пользователей)
Размер массивв

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

Нажмите на изображение для увеличения
Название: Буфер обмена02.jpg
Просмотров: 969
Размер:	48.5 Кб
ID:	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;
}
Выделенная строка соответствует коду, помеченному в книге как ошибочный.

как жить дальше?
__________________
http://nabatchikov.com
Мир нужно делать лучше и чище. Иначе, зачем мы живем? tormoz
А я растила сына на преданьях
о принцах, троллях, потайных свиданьях,
погонях, похищениях невест.
Да кто же знал, что сказка душу съест?

Последний раз редактировалось impersonalis, 17.05.2012 в 14:38.
(Offline)