The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"Нас дурят!!??"
Вариант для распечатки  
Пред. тема | След. тема 
Форумы Программирование под UNIX (Public)
Изначальное сообщение [ Отслеживать ]

"Нас дурят!!??"  
Сообщение от dimonna email(ok) on 25-Дек-07, 22:14 
Всем привет!
Совершенно обескуражен вот чем (g++ 4.1.2):

void f(int& a)
{
a=10;
}

....

int a=0;
f(a);
char buf[a];
int i=sizeof buf; // i будет равно 10
// и мало того, размерность указывает не const !!!!
// прежние версии gcc помоему вообще не скомпилили бы такую финтифлюшку

или еще:
void f(int a)
{
char buf[a];
int i=sizeof buf; //i будет равно a !!!!!
}

Дизассембляция показывает

получается что sizeof перенесен со времени компиляции на время выполнения???
... или нас дурят....

Высказать мнение | Ответить | Правка | Cообщить модератору

 Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "Нас дурят!!??"  
Сообщение от Michelnok (??) on 25-Дек-07, 22:49 
>
>получается что sizeof перенесен со времени компиляции на время выполнения???

http://gcc.gnu.org/onlinedocs/gcc-4.2.2/gcc/Variable-Length....

ISO C99, однако :)


Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

2. "Нас дурят!!??"  
Сообщение от pavlinux email(??) on 02-Янв-08, 17:00 
>или еще:
>void f(int a)
>{
>char buf[a];
>int i=sizeof buf; //i будет равно a !!!!!

А ты как хотел? Чтоб  i = a * sizeof(char);      ????



Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

3. "Нас дурят!!??"  
Сообщение от XKAV email on 02-Янв-08, 22:55 
>>или еще:
>>void f(int a)
>>{
>>char buf[a];
>>int i=sizeof buf; //i будет равно a !!!!!
>
>А ты как хотел? Чтоб  i = a * sizeof(char);  
>    ????

Но если сделать так то

a=5;
int buf[a];

for (i=0, i < a, i++)
   {
     buf=0;
   }

i=sizeof(buf);  

получиться 0; т.е. массив есть, размера нет. :)


Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

4. "Нас дурят!!??"  
Сообщение от XKAV email on 02-Янв-08, 22:57 
Упс...

buf=0

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Оцените тред (1=ужас, 5=супер)? [ 1 | 2 | 3 | 4 | 5 ] [Рекомендовать для помещения в FAQ]




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру