Форум программистов, компьютерный форум, киберфорум
Наши страницы

С + + и Visual C + + и чем они отличаются? Есть ли их изучение взаимно дополняющее или это совсем разные языки? - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Где деструкторы? http://www.cyberforum.ru/cpp-beginners/thread608047.html
Ребят сижу разбираю код на С++,не могу понять где диструктор тут.. #include <vcl.h> #pragma hdrstop #include "Unit1.h" #include "math.h" #pragma package(smart_init) #pragma resource "*.dfm"...
C++ Явное преобразование типов class CLSObj { void abc(int d){ ... } ... }; int main() { char *p; CLSObj obj; http://www.cyberforum.ru/cpp-beginners/thread608044.html
как count endl заменить на printf ? C++
Всем добрый вечер , есть одна программа , там встречаются строчки . Собственно вопрос , как будут выглядеть эти строчки с использованием printf . cout << "х" << i << "=" << xn << endl; ...
C++ Не могу разобраться в формуле
Пишу программу про шифр Виженера http://*******/oiwOo . codestr = (str + key) % 26 - набросок формулы для шифрования. str = (codestr - key + 26) % 26 - дешифрование. На данном форуме нашел похожую...
C++ Неинициализированные переменные http://www.cyberforum.ru/cpp-beginners/thread607990.html
пишет типа не инициализированы d1 и d2,хотя они объявлены#include "iostream" using namespace std; struct Distance { int feet; float inches; }; int main() {
C++ MSVS 2010 Hello world Скачал Vidual Studio 2010 Express, создал проект, скопипастил туда Helloworld. Компиляция завершилась ошибкой. При чем окон с ошибкой я так и не увидел. Неужели в Visual C++ Синтаксис отличный от C++? подробнее

Показать сообщение отдельно
Evg
Эксперт CАвтор FAQ
18368 / 6415 / 441
Регистрация: 30.03.2009
Сообщений: 17,795
Записей в блоге: 28
25.06.2012, 00:00
Цитата Сообщение от Avazart Посмотреть сообщение
Ну да, сборищик мусора для того же... ну и C#...
Да нет, тут дело не в сборщиках мусора, а в отсутствии контроля за границей допустимой памяти во всяких функциях типа strcpy

Цитата Сообщение от CyBOSSeR Посмотреть сообщение
И добавить новые типичные ошибки.
C++
1
2
std::string str = "blabla";
printf("%s", str);
Работает в студии, хоть и противоречит здравому смыслу и падает в том же GCC.
А где тут ошибка? Просто при передаче класс передаётся по косвенности, а класс устроен так, что первое поле класса - массив char'ов. В итоге получается, что printf достаёт строку, как будто передавался указатель на массив char'ов. Ну или что-то около того. Собственно, функция printf является опасной (как и любая функция с vararg'ами), а потому такие эффекты - это нормально

Добавлено через 2 минуты
Цитата Сообщение от Avazart Посмотреть сообщение
Пробовал на трех компилятора данный код
VC2010 выдает иероглефы
Builder2009 никак не регирует, как будто просто этих строчек нет
QtCreator заканчивается окошком "прекращение работы программы" т.е краш.
Потому что в run-time поддержке компиляторов разная реализация внутренностей класса string

Цитата Сообщение от Avazart Посмотреть сообщение
По хорошему должна быть ошибка или хотябы ворнинг...
gcc точно умеет выдавать ворнинг по -Wall. Думаю, что и остальные умеют

Цитата Сообщение от Avazart Посмотреть сообщение
И краш явно не лучший вариант...
Если программа написана криво, то при чём тут компилятор?
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.