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

Стек или динамическая память!? - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Подсчёт количества выпадений чисел в массиве. http://www.cyberforum.ru/cpp-beginners/thread436978.html
Имеется одноразрядный массив а с набором чисел в нем . Порядок чисел в массиве рандомный. То есть приблизительно может быть вот так: 19 4 45 32 48 и т.д. Как посчитать сколько раз каждое число повторяется в массиве.
C++ Не получается составить программу По надёжным данным военной разведки,штаб противника находится на расстоянии R км от артиллерийской батареи.Из орудия в сторону цели производится выстрел под углом а градусов к горизонту.Скорость вылета снаряда из ствола - V м/с.Радиус зоны поражения снаряда - S .Напишите программу,которая определяет поражение цели или нет.Значения R,V,S,a вводятся с клавиатуры У меня получилось что программа... http://www.cyberforum.ru/cpp-beginners/thread436973.html
C++ структура
#include<iostream.h> #include<conio.h> #include<string.h> #define n3 struct avtoprice { char marka ; int year,price; }; void auto_desh(struct Avtoprice*p);
C++ Посчитать сколько раз встречается каждый элемент в массиве.
Не получается программа. Что не так? #include <stdio.h> using namespace std; const int n = 7; int main() { int a; int a1;
C++ структуры http://www.cyberforum.ru/cpp-beginners/thread436953.html
#include<iostream.h> #include<conio.h> #include<string.h> #define n3 struct avtoprice { char marka ; int year,price; }; void auto_desh(struct Avtoprice*p);
C++ Проблема с КОМПИЛЯТОРОМ CODE BLOCK 8.02 Привет,ребята такая проблема пишу в кампиляторе такой текст #include <iostream> using namespace std; int main() { cout << "jhkjhkjh" << endl; подробнее

Показать сообщение отдельно
AnyOne697
 Аватар для AnyOne697
134 / 106 / 5
Регистрация: 22.05.2010
Сообщений: 532
28.01.2012, 21:17     Стек или динамическая память!?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <iostream>
 
using namespace std;
 
char *Test()
{
        return "Test!";
}
 
int main()
{
        char *p = Test();
        cout << p << endl;
}
У Вас создаётся строковая константа Test, которая записывается в call-stack (вроде так он называется). Причём работа стека в Си++ примерно такая - переменные не "стираются", а "помечаются как свободные"... Здесь нужно понимать принцип работы стека.

В общем, Ваша строковая константа просто не была переписана другими переменными. Так как Функция вернула указатель, обращаясь по нему Вы обращаетесь к тому участку памяти где "была" и "возможно есть" эта самая строковая константа.

Такой недохак крайне нежелательно использовать. Лучше использовать кучу и самостоятельно высвобождать память.
 
Текущее время: 19:10. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru