Об игре
Новости
Войти
Регистрация
Рейтинг
Форум
17:03
3961
 online
Требуется авторизация
Вы не авторизованы
   Форумы-->Форум для внеигровых тем-->
1|2|3|4

АвторС++ (вопросик)
void func(void)
{
int i;
printf("Print: ");
for( ; i > 0 ; i-- ) printf("%d ", i);
printf("Done\n");
}
int main(int argc,char* argv)
{
int *a;
a = (int*)((((int)(&argc) - 8) & (-0x10)) - 0x24);
*a=10; func();
*a=20; func();
return 0;
}


Покажи мне тут, где передается значение переменной i
чтоб цикл
for( ; i > 0 ; i-- ) printf("%d ", i);
Отработал и вывел числа.
для MrSlayer:
Встроенный в линукс gcc не выдает ошибок. Варнинги тоже.
Хм... а почему тишина?
ну, во-первых, я не пойму что это за строчка
a = (int*)((((int)(&argc) - 8) & (-0x10)) - 0x24);
а, во-вторых, я не понимаю, что ты хочешь сделать
угораем над нубом
для sanek_92:
Жаль что не понимаешь...
Тебе всю суть проекта рассказать?))

Если в контектсте этой программы, то я не хочу писать в какую конкретно ячейку клалось значение, мне нужна идея, чтоб это делалось как то попроще.
для Вех:
я могу рассматривать это как оскорбление?
Тебе всю суть проекта рассказать?))
расскажи че делает эта строчка)
Если в контектсте этой программы, то я не хочу писать в какую конкретно ячейку клалось значение, мне нужна идея, чтоб это делалось как то попроще.
я ваще ниче не понял)
весь код в 1м посте- ересь...начни по-другому, посан...
для Вех:
обоснуй. Код работает. Выводит что его просят. Что не так?
для Вех:
я могу рассматривать это как оскорбление?
нет, программера так не оскорбить
Что не так?
плохо лазить в память.
хочешь так делать пиши на асемблере
Ради интереса запустил и увидел, что ничего не работает. Как предполагалось, что будет писать использование неинициализированной переменной, так и работает. А чего ты ждал то?
А чего ты ждал то? у него же чистый жцц стоит))
для MrSlayer:
на gcc все ок:)
для MrSlayer:
Я ждал совета, как это упрастить.
Я ждал совета, как это упрастить.
void func(int i)
{
printf("Print: ");
for( ; i > 0 ; i-- ) printf("%d ", i);
printf("Done\n");
}
int main(int argc,char* argv)
{
func(10);
func(20);
return 0;
}
int main(int argc,char* argv)
еще
int main(void)
аргументы командной строки тут не нужны)
для sanek_92:
void func(int i)
{
printf("Print: ");
for( ; i > 0 ; i-- ) printf("%d ", i);
printf("Done\n");
}
int main(int argc,char* argv)
{
func(10);
func(20);
return 0;
}

Это конечно гениально... но я хотел немного другую идею :)
Я так понимаю, ты просто подобрал ячейку памяти, где потом выделяется локальная переменная и пишешь напрямую в память числа. Только вот запусти программу, например, с параметрами командной строки :) А еще лучше, пересобери проект под другую архитектуру или под другую ОС.
1|2|3|4
К списку тем
2007-2025, онлайн игры HeroesWM