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

Как сделать так, чтобы код вернул НОРМАЛЬНУЮ строку в pName, а не мусор - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Вычислить значения выражений. Объяснить полученные результаты http://www.cyberforum.ru/cpp-beginners/thread1118496.html
Вычислить значения выражений. Объяснить полученные результаты. n---m m--<n n++>m Что не правильно?..Не работает. #include <iostream> using namespace std;
C++ Натуральное число n представить в виде суммы трех полных квадратов Логической переменной t присвоить значение true или false, в зависимости от того, можно или нет натуральное число n представить в виде суммы трех полных квадратов. За помощь отблагодарю быстро. http://www.cyberforum.ru/cpp-beginners/thread1118482.html
Написать программу для вычисления числа с заданной точностью. C++
Нужно написать программу для вычисления числа y=\sqrt{x} с заданной точностью. -------- За введенными x, k, \varepsilon (точность вычислений) программа должна вернуть значение y=\sqrt{x} , где k, x \in R. ------------ В программе использовать формулу: y=y(i)+1/k(x/({y(i)}^{k-1})-y(i)) Организовать цикл, в каком на каждом шаге вычислять: \delta =1/k(x/({{y}_{i}}^{k-1})-{y}_{i}) тогда...
Класс «Комплексное число». Поля класса: действительная и мнимая части C++
Помогите, описать класс в соответствии с индивидуальным вариантом задания и реализовать все его методы. Каждый класс помимо указанных в варианте методов должен содержать конструктор с параметрами, конструктор копирования, деструктор, методы ввода с клавиатуры, установки и получения значений полей, вывода этих значений на экран. В каждом методе класса, включая конструкторы и деструктор,...
C++ Где ошибка в классе ? http://www.cyberforum.ru/cpp-beginners/thread1118437.html
Если я делаю все то же самое в главной функции, то никакой ошибки нет. При создании класса windows не одобряет мои действия. ))) class examp { private: int *a; public: void write() {
C++ Как сделать проще? Здравствуйте, вот написал программу, которая реализовывает функцию определения значения некоторой элементарной функции, зависящей от аргумента, с заданной точностью и максимальной допустимым количеством итераций. Помогите, пожалуйста, как можно её еще больше упростить? #include "stdafx.h" #include <iostream> #include <cmath> using namespace std; double f1(double x) {return log(x);} подробнее

Показать сообщение отдельно
ValeryS
Модератор
6377 / 4843 / 442
Регистрация: 14.02.2011
Сообщений: 16,047
13.03.2014, 21:40     Как сделать так, чтобы код вернул НОРМАЛЬНУЮ строку в pName, а не мусор
Цитата Сообщение от monolit Посмотреть сообщение
На ней(картике) проблема в том, что массив pName в функции статический,
как раз не статический, был бы статический таких проблем
Цитата Сообщение от monolit Посмотреть сообщение
Т.е. при выходе из функции получаешь мусор (данные удаляются).
не было бы
статические переменные не удаляются при выходе из функции
можно сказать, что статические переменные это глобальные переменные которые видны из одной функции
так что при статике можно написать так ,без выделения памяти
C++
1
2
3
4
5
6
7
8
9
10
11
12
char *GetProcName(char *path0){
   static char pName[255];
    int j=0;
    char path[255];
    strcpy(path, path0);
    for(int i = strlen(path)-1; path[i] != '\\' ; i--, j++)
        pName[j] = path[i];
 
  pName[j] ='\0';// добавляем в конец 0 чтобы получилась строка
    
return pName;
}
но тут возможен другой косяк

C++
1
2
char *str1=GetProcName("Мама мыла\\ раму");
char *str2=GetProcName("Мама мыла\\ кошку");
и str1 и str2 будет указывать на один и тот же буфер где будет написано "кошку"

Добавлено через 51 секунду
Цитата Сообщение от uhx Посмотреть сообщение
Вообщем, в начало записывает, а когда вывожу - всякий хлам. Как убрать?
0 в конце строки добавь иначе у тебя строка без конца
смотри как у меня сделано
 
Текущее время: 22:12. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru