Что тут неправильного?

Все, что вы хотели знать о программизме, но боялись спросить.
Ответить
Аватара пользователя
Marmot
Графоман
Сообщения: 39279
Зарегистрирован: 17 фев 2003, 17:58
Откуда: Caulfeild
Контактная информация:

Сообщение Marmot »

aissp писал(а):надо замедлить ее работу раз в несколько
BS
aissp писал(а): и увеличить ее объем во стока же раз,
Да, это бывает, хотя, если честно, если посмотреть сколько памяти жрут современные программы, написанные на С/С++ всякими там подмастерьями, то особой разницы уже не видно. :evil:
Аватара пользователя
aissp
Маньяк
Сообщения: 2710
Зарегистрирован: 07 ноя 2005, 09:51

Сообщение aissp »

От на етой мажорной ноте предлагаю закончить бессмысленный базар. А то Саня так на свою задачу и не даст ответа =) А впрочем сделаю еще один гесс.

Объявления пременной х не являются ее определениями, и стандарт языка С не запрещает такую конструкцию По кр мере такой вод код легко работает

Код: Выделить всё

int x;
int x;

... main (...) {
x=0;
}
Аватара пользователя
ajkj3em
Маньяк
Сообщения: 2063
Зарегистрирован: 12 ноя 2006, 06:53

Сообщение ajkj3em »

йеп, это называется "tentative definition". бонусный вопрос - а где собсно
место под этот (икс) располагается после компиляции ?
tiasur
Маньяк
Сообщения: 1510
Зарегистрирован: 26 фев 2006, 10:00
Откуда: offline

Сообщение tiasur »

aissp писал(а): Объявления пременной х не являются ее определениями, и стандарт языка С не запрещает такую конструкцию По кр мере такой вод код легко работает

Код: Выделить всё

int x;
int x;

... main (...) {
x=0;
}
Интересно где он у тебя работает?
Аватара пользователя
CdR
Графоман
Сообщения: 11245
Зарегистрирован: 11 окт 2004, 19:27
Откуда: Европа, центр, за углом направо.

Сообщение CdR »

tiasur писал(а):Интересно где он у тебя работает?
jfyi, gcc (GCC) 4.1.1 :

Код: Выделить всё

$ cat test.c
#include <stdio.h>
int x;
int x;
int main () {
x=0;
printf ("x=%d\n",x);
}
$ gcc test.c -o test
$ ./test
x=0
$
g++ ругнется на второй int x.
Аватара пользователя
aissp
Маньяк
Сообщения: 2710
Зарегистрирован: 07 ноя 2005, 09:51

Сообщение aissp »

Скажу честно, ответа точно не знал, но предположил что на стеке, на стеке и оказалась, но почему я не совсем понимаю (ща мармот закидает меня пирожками и обхяснит що я не прав)

Остальным = компиляйите как с код не как спп работает и под юнихом гсс и винлами вижуал студио .нет
Аватара пользователя
Ranger
Маньяк
Сообщения: 1199
Зарегистрирован: 22 окт 2003, 18:28
Откуда: 2:5025 -> Burnaby

Re: Что тут неправильного?

Сообщение Ranger »

dima писал(а):
tiasur писал(а):struct MStruct
{
int *ptr;
MStruct(int n) { ptr = new int; *ptr = n; }
~MStruct() { delete ptr; }
};
1. default constructor не определен, поэтому destructor упадет с сигналом
2. copy constructor не определен - скопируется мусор, destructor упадет
Мда... есть всё-таки вещи, которые за 7.5 лет абсолютно не меняются: звезды, постоянная Планка, dima и знание им C++ :lol:

P.S. Если ты, конечно, тот самый dima, который писал в 1999 году у Самодова ;)
Аватара пользователя
aissp
Маньяк
Сообщения: 2710
Зарегистрирован: 07 ноя 2005, 09:51

Сообщение aissp »

А рискну ответить еще один раз
при таком объявлении
int x;
int x;
переменная заводиться в области глобальных переменных и нициализируется нулем, однако ето депендс.

static int x;
int x; //x станет статик переменной и будет доступна тока внутри файла


обратный порядок вызовет ошибку компиляции.

Доктор я буду жить? =)
tiasur
Маньяк
Сообщения: 1510
Зарегистрирован: 26 фев 2006, 10:00
Откуда: offline

Сообщение tiasur »

aissp писал(а): Доктор я буду жить? =)
Как то все это отдаёт недоделанностью компилятора или стандарта.
Аватара пользователя
aissp
Маньяк
Сообщения: 2710
Зарегистрирован: 07 ноя 2005, 09:51

Сообщение aissp »

жЫ шЫ пиши с буквой и... Отдает недоделанностью стандарта однако...
tiasur
Маньяк
Сообщения: 1510
Зарегистрирован: 26 фев 2006, 10:00
Откуда: offline

Сообщение tiasur »

aissp писал(а): Отдает недоделанностью стандарта однако...
В любом случае нужно расчитывать на здравый смысл своих мозгов, а с дуру можно и ... сломать. Короче всегда нужно знать, что делаешь.

жЫ шЫ пиши с буквой и...
Да тут без исключений.
Аватара пользователя
sz
Маньяк
Сообщения: 1266
Зарегистрирован: 17 фев 2003, 19:34

Сообщение sz »

tiasur писал(а):Да пожалуйста:

Код: Выделить всё

int *array(int n)
{
      return new int(n);
}

int main()
{
      int *p = array(10);
      for( int i = 0; i < 10; i++ )
      {
            p[i] = 0;
      }
      printf( "%d\n", p[0] );
     p = array(10);
     printf( "%d\n", p[0] );
      return 0;
}
Tут помимо всеобшей тупизны ничего особенного не замечаю. Ну разве что memory leakage.
Тест проверяет - заметит ли кандидат, что скобочки круглые, а не квадратные.
Меня бы не взяли - я с первого прочтения не заметил.
Аватара пользователя
ajkj3em
Маньяк
Сообщения: 2063
Зарегистрирован: 12 ноя 2006, 06:53

Сообщение ajkj3em »

aissp писал(а):А рискну ответить еще один раз
при таком объявлении
int x;
int x;
переменная заводиться в области глобальных переменных и нициализируется нулем, однако ето депендс.

static int x;
int x; //x станет статик переменной и будет доступна тока внутри файла


обратный порядок вызовет ошибку компиляции.

Доктор я буду жить? =)
не, я не о том. ну да фиг с ним ... бонусный вопрос снимается в связи
с отсутствием бонуса :)
Аватара пользователя
sz
Маньяк
Сообщения: 1266
Зарегистрирован: 17 фев 2003, 19:34

Сообщение sz »

Объяснил бы лучше, что у тебя на аватаре нарисовано.
Аватара пользователя
Yury
The L'ony
Сообщения: 26202
Зарегистрирован: 22 янв 2004, 13:48
Откуда: Мирный -> Vancouver
Контактная информация:

Сообщение Yury »

Старина Зотин писал(а):Объяснил бы лучше, что у тебя на аватаре нарисовано.
http://forum.kamorka.com/viewtopic.php? ... highlight=
Последний раз редактировалось Yury 26 окт 2006, 23:19, всего редактировалось 2 раза.
Ответить