Форум программистов, компьютерный форум CyberForum.ru

баг студии? - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ ввод с клавиатуры sinx+tgx=0 http://www.cyberforum.ru/cpp-beginners/thread447402.html
Задача ввести с клавиатуры sinx+tgx=0 или любую другую арифметическую формулу и найти её решение. Сделать это надо методом Хорд, с методом вроде норм все, меня вопрос в другом. Как мне надо задать ввод с клавиатуры, чтоб в последствии я могла менять х, и вычислять эту формулу нормально.Проблема еще в том, что я точно не знаю какое выражение может быть введено? т. е. суть вопроса как мне...
C++ Указатели!! Пользователь вводит строку с клавиатуры - предложение с пробелами и знаками пунктуации длиной до 100 символов. Вывести на экран все знаки пунктуации. http://www.cyberforum.ru/cpp-beginners/thread447398.html
Как в консоли отобразить содержимое текста? C++
Как в консоли отобразить содержимое в тексте? Пробовал что-то подобное, но не получается FILE *file = fopen("T://myfile.txt","r"); char str; while (!feof(file)) { if (!fgets(str,100,file)) break; puts(str);
C++ Массивы где то ошибка?
#include "stdafx.h" #include <iostream> #include<iomanip> #include<stdlib.h> #include<time.h> #include<stdio.h> using namespace std; void main () { char ch;
C++ Как закрасить треугольник? http://www.cyberforum.ru/cpp-beginners/thread447382.html
Как мне закрасить треугольники? #include<windows.h> #include<string.h> #define ID_TIMER 1 HBRUSH tbrush; HBRUSH tbrush1; RECT trect; long tspeed = 1; // Скорость шарика
C++ Сортировка в алфавитном порядке... Здравствуйте, не могли бы вы помочь мне с задачей? Просто мы на лекциях ещё не разобрали как работать с файлами и текстом на C++, а на лабораторных уже задали такое вот задание. Буду очень признателен. подробнее

Показать сообщение отдельно
Питекантроп
 Аватар для Питекантроп
246 / 140 / 6
Регистрация: 14.06.2010
Сообщений: 340
16.02.2012, 19:06     баг студии?
Есть такой код

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include "stdio.h"
 
void test_fun(int count, int ...)
{
    int * arr = &count + 1;
    for (int i = 0; i < count; i++)
        printf("%i ",arr[i]);
}
 
int main(int argc, char* argv[])
{
    test_fun(4,1,2,3,4);
    getchar();
    return 0;
}
gcc его компилирует нормально, билдер тоже. (вывод 1 2 3 4)
А в студии (2010) в режиме релиз результат другой: 2 3 4 80. Т.е почему-то не заносится в стек первый параметр. 80 - это мусор.
Просмотр дизассемлированного кода это подтверждает
Assembler
1
2
3
4
5
6
      test_fun(4,1,2,3,4);
00331051  push        4  
00331053  push        3  
00331055  push        2  
00331057  push        4  
00331059  call        test_fun
Если в свойствах проекта с\с++ \ оптимизация отключить "оптимизация всей программы", то все как надо:
Assembler
1
2
3
4
5
6
7
    test_fun(4,1,2,3,4);
00833F53  push        4  
00833F55  push        3  
00833F57  push        2  
00833F59  push        1  
00833F5B  push        4  
00833F5D  call        test_fun
Как вы думаете, это баг студии?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 13:44. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru