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

Запись значения в динамический массив - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Спасайте нуба http://www.cyberforum.ru/cpp-beginners/thread343010.html
Нужно до 7 утра уже сегодня видимо написать одну из трех программ. Судоку, Покер, Оргонайзер. При помощи классов. кто спасет....?
C++ Помогите решить ошибки при компиляции Вот такой код: // #include <iostream.h> #include <conio.h> #include <assert.h> template<class NODETYPE> class ListNode http://www.cyberforum.ru/cpp-beginners/thread343002.html
Вектор векторов C++
Вектор векторов - плюсы и минусы, альтернативы. Подскажите новичку) P.S. Внутри массив из 2х интов)
C++ Классы
Здравствуйте, а не подскажите может ли указатель базового класса указывать на наледника
C++ Непонятный приём строки http://www.cyberforum.ru/cpp-beginners/thread342990.html
Всем привет. Считываю строку с консоли: char* str = new char(); cin.getline(str, 80); cout<<str<<endl; Если вводить больше 24 символов, то почему-то выводятся только первые 24 символа и после них непонятно откуда взявшийся знак '!'. Пробовал считывать через gets(str) --- не помогло.
C++ int main() и int _tmain(int argc, _TCHAR* argv[]) При создании нового консольного приложения Microsoft Visual С++ 2010 Express создает начальный шаблон #include "stdafx.h" int _tmain(int argc, _TCHAR* argv) { return 0; } Можете объяснить разницу между простым int main() и тем что он предлагает int _tmain(int argc, _TCHAR* argv)(в принципе проверял работает и так и так)и что лучше использовать?(Только прошу попроще а то я только... подробнее

Показать сообщение отдельно
Enfernuz
22 / 22 / 1
Регистрация: 11.04.2011
Сообщений: 67
18.08.2011, 02:01     Запись значения в динамический массив
Короче, вся проблема в том, что Вы выделяете некорректное количество памяти.
C++
1
char *tempnum = new char[k==0];
, к примеру, выделит минимальный блок памяти (точный размер не знаю). И это не будет массивом --- неизвестно количество элементов. Просто кусок памяти, в который Вы можете записать несколько int'ов. Как только Вы, увеличивая k, выйдете за границы этого куска при записи *(tempnum+k)='.'; --- всё, память не Ваша. Писать туда --- непредсказуемый результат.

P.S. Я сам новичок, поэтому могу ошибаться.
 
Текущее время: 07:05. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru