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

Вывод мусора после отработки функции - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Классы "Пара чисел" и "Прямоугольный треугольник" http://www.cyberforum.ru/cpp-beginners/thread1159605.html
Задача: Базовый класс: ПАРА_ЧИСЕЛ (PAIR) Первое_число (first) - int Второе_число (second) – int Определить методы изменения полей и вычисления произведения чисел. Создать производный класс ПРЯМОУГОЛЬНЫЙ_ТРЕУГОЛЬНИК (RIGHTANGLED), с полями-катетами. Определить метод вычисления гипотенузы. И собственно код
C++ Составить программу, проверяющую является ли данное число простым Составить программу, проверяющую является ли данное число простым Спасибо за помощь :) http://www.cyberforum.ru/cpp-beginners/thread1159601.html
C++ Найти НОК (наименьшее общее кратное) массива натуральных чисел
Найти НОК (наименьшее общее кратное) массива натуральных чисел. Спасибо за помощь :)
C++ Найти НОД (наибольший общий делитель) массива натуральных чисел
Найти НОД (наибольший общий делитель) массива натуральных чисел. Спасибо за помощь :)
C++ Найти НОК (наименьшее общее кратное) двух введённых чисел http://www.cyberforum.ru/cpp-beginners/thread1159597.html
Найти НОК (наименьшее общее кратное) двух введённых чисел. Спасибо за помощь
C++ Как работает рекурсия в цикле Всем привет! Подскажите пожалуйста как работает рекурсия в цикле, типа вот такого bool test(long long value,int n) { bool res = false; for (int i = 2; i <= 5; i++) { if (value * i >= n || test(value*i, n) == false) { res = true; break; подробнее

Показать сообщение отдельно
D_Ok
43 / 32 / 12
Регистрация: 11.02.2014
Сообщений: 134
27.04.2014, 23:39     Вывод мусора после отработки функции
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#include <iostream>
#include <conio.h>
void Binary(char *&,int);
using namespace std;
int main()
{
    int number;
    char * str = new char[];
    cin >> number;
    Binary(str, number);
    cout << str << endl; //вывод мусора
    return 0;
}
void Binary(char *&str, int number)
{
    char temp[20] = {};
    while (number)
    {
        if (number % 2)
            strcpy_s(temp + strlen(temp), strlen(temp) + 2, "1");
        else if (!(number % 2))
            strcpy_s(temp + strlen(temp), strlen(temp) + 2, "0");
        number =number/2;
    }
    str = temp;
    cout << str << endl; //нормальный вывод
}
собственно вывод str в функции правильный, а когда вывожу после, то выводит мусор какой-то(если выводить по элементу str[0],str[1]... то норм), что не так?

Добавлено через 11 минут
вместо
C++
1
str = temp;
написал
C++
1
strncpy_s(str, 20, temp, 20);
помогло, только вот интересно почему когда вывожу результат в ф-ции, вывод правильный?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 12:43. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru