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

Неприятная проблема с массивом строк - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Извлечь элемент из вектора http://www.cyberforum.ru/cpp-beginners/thread334086.html
Пожалуйста, помогите разобраться. Это функция разбивки строки на лексемы, и копирования результатов разбивки в вектор. void Tokenize(const string& str, vektor<string>&tk, const string& delimiters = "") { string::size_type lastPos =0; lastPos = str.find_first_not_of(delimiters); while (lastPos != string::npos ) {
C++ Крестики-нолики Захотелось написать игру Крестики-нолики но тут возник один вопрос, как будет ходить компютер, если пользоватся rand-ом то компютер будет играть тупо, а if-ами будет очень длинно, как же решить эту проблему? http://www.cyberforum.ru/cpp-beginners/thread334077.html
Дружественные функции ошибка C++
Проблема следующая при удалении временной переменой возникает ошибка в 51 строке #include <iostream> #include <Windows.h> using namespace std; class CSnacks; class CDrinks; class CSnacks { private: char *name;
считать в вектор пар все числа, отличные от нуля C++
У меня такая задача: считать в вектор пар все числа, отличные от нуля. В паре - первое число - всегда типа int, второе - double. Написал небольшую ф-цию. Но не получается считать. "Debug Assertion failed" - vector subscript out of range. - не пойму, где ошибка Из файла считываю вот такую последовательность: 1 4 0 2 1 3 6 0 1 5 3 2 234 5 0 А вот мой код:
C++ Модификация перезагрузки http://www.cyberforum.ru/cpp-beginners/thread334045.html
Программа рабочая вот такая #include <iostream> #include <cstring>//для strcpy(),strlen() using namespace std; #include <process.h>//для exit() class String
C++ Автозапуск процесса Dev-cpp Как сделать автозапуск процесса по включении компа, желательно через винапи? подробнее

Показать сообщение отдельно
grizlik78
Эксперт С++
1908 / 1440 / 110
Регистрация: 29.05.2011
Сообщений: 2,995
18.07.2011, 17:18     Неприятная проблема с массивом строк
В исходной программе ошибка, разумеется, вот здесь:
C++
1
tmpDirs[kFile-3] = FindFile.cFileName;
Здесь просто сохраняется указатель на один и тот же буфер. Ничего удивительного, что в результате много раз повторяется последнее значение.
Надо выделить память и скопировать имя.
C++
1
2
tmpDirs[kFile-3] = new char[MAX_PATH];
strncpy(tmpDirs[kFile-3], FindFile.cFileName, MAX_PATH);
Ну а в конце память надо будет освободить.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru