Результаты поиска по запросу "c++"

7 ответов

), поскольку, если целочисленный литерал не представим, программа становится плохо сформированной.

о ... Итак, у меня возникла глупая идея, и я попытался поместить значение 0123 в целое число, просто любопытно посмотреть, что произойдет, я предполагал, что при выводе значения я получу 123, но вместо этого я получил 83 ... Есть идеи почему? что ...

8 ответов

Это «грязный» способ использования адресов памяти. Когда вы возвращаете адрес (указатель), вы не знаете, относится ли он к локальной области действия функции. Это просто адрес. Теперь, когда вы вызвали функцию 'foo', этот адрес (ячейка памяти) для 'a' уже был размещен там в (по крайней мере, пока безопасно) адресуемой памяти вашего приложения (процесса). После того, как функция 'foo' вернулась, адрес 'a' может считаться 'грязным', но он там, не очищен и не нарушен / не изменен выражениями в другой части программы (по крайней мере, в этом конкретном случае). Компилятор C / C ++ не останавливает вас от такого «грязного» доступа (хотя может вас предупредить, если вам не все равно). Вы можете безопасно использовать (обновлять) любую область памяти, которая находится в сегменте данных экземпляра вашей программы (процесса), если вы не защищаете адрес каким-либо способом.

я есть следующий код. #include <iostream> int * foo() { int a = 5; return &a; } int main() { int* p = foo(); std::cout << *p; *p = 8; std::cout << *p; }И код просто выполняется без исключений времени выполнения! Выход был58 Как это может быть? ...

9 ответов

Просто, чтобы проиллюстрировать мой комментарий к ответу CygnusX1, вы можете сделать это следующим образом:

тоящее время я пишу функцию, которая будет принимать переменное количество аргументов. Я передаю количество аргументов в функцию, а затем перебираю список аргументов. Каждый из переданных аргументов должен быть целым числом. Я буду добавлять ...

ТОП публикаций

11 ответов

приятно знать, но реализованы ли они еще?

юбопытно, какие свободы имеет компилятор при оптимизации. Давайте ограничим этот вопрос GCC и C / C ++ (любая версия, любой вариант стандарта): Можно ли написать код, которыйведет себя по-разному в зависимости от того, с каким уровнем ...

17 ответов

разница между двумя

кнулся на вопрос переполнения стекаУтечка памяти при использовании std :: string при использовании std :: list <std :: string> [https://stackoverflow.com/q/3428750/211563], а такжеодин из ...

3 ответа

Проблемы с делом 'p' || 'P': синтаксис в операторе switch в C ++

Я использовал оператор switch следующим образом: switch (ch){ case 'P' || 'p': goto balance; break; case 'r' || 'R': goto menu; break; default: cout<<"\t\tInvalid Choice!!"<<endl; system ("\t\tpause"); system ("cls"); goto menu; break; }Но, ...

10 ответов

Как решить ошибку LNK2019: неразрешенный внешний символ - функция?

Я получаю эту ошибку, но я не знаю, как ее исправить. Я использую Visual Studio 2013. Я сделал название решенияMyProjectTestЭто структура моего тестового решения: -function.h #ifndef MY_FUNCTION_H #define MY_FUNCTION_H int multiple(int x, ...

1 ответ

Почему массивы переменной длины не являются частью стандарта C ++?

Я не очень много использовал C в последние несколько лет. Когда я читаюэтот вопрос [https://stackoverflow.com/questions/1886504/coding-problem-using-a-2-d-array-of-structs-inside-another-struct-in-c] сегодня я натолкнулся на некоторый синтаксис ...

2 ответа

Ошибка компиляции с шаблонами - нет подходящей функции для вызова

Я пытаюсь преобразовать строку в число. Для этого я нашел следующий путь: #include <iostream> #include <string> template <typename T> T stringToNumber(const std::string &s) { std::stringstream ss(s); T result; return ss >> result ? result : 0; } ...

1 ответ

C ++ Struct Pointer Segfault

Во-первых, заранее спасибо всем, кто откликнулся на этот пост. Во-вторых, я просмотрел все другие посты и не смог найти ничего, что мне помогло (мои извинения, я новичок в C ++). Вот мой код: Node* Insert(Node *head,int data) //for linked ...