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

проверьте, кажется сам нашёл ошибку уже - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Расчёт значения функции в заданной точке http://www.cyberforum.ru/cpp-beginners/thread967552.html
Разработайте программу, рассчитывающую значения двух указанных функций. Входные значения аргументов запросите с консоли. Полученные значения функций выведите на консоль. Помогите,что не правильно??? Уже не могу 2 часа мучаюсь!!! #include <stdio.h> #include <math.h> void main() { float z1,z2,x,y; scanf("%f",&x,&y);
C++ Использования C# dll в С++ программе Здравствуйте, скажите пожалуйста можно ли быстро "прикрутить" C# dll в программе написаной на С++ так чтоб я смог на С# вызывать нужные функции из dll, а на С++ делать остальную работу. Если это возможно, то как? http://www.cyberforum.ru/cpp-beginners/thread967549.html
Реализовать функцию C++
Помогите на завтра надо решить это задание. Прошу тапками не кидать ,я только начал изучать язык и не могу догнать что к чему).
Равномерное кодирование C++
Скажу коротко, есть задание : программа должна сжимать файлы текстовые и бинарные с помощью равномерного кодирования. И если с исходным алфавитом текстового файла все еще как то ясно, то что делать с бинарным, как производить разбивку битов , что бы получить исходный алфавит без избытка и чтобы кодирование вышло эффективным?
C++ Разработать программу для вычисления значения функций f1(x) и f2(x) http://www.cyberforum.ru/cpp-beginners/thread967506.html
ПОМОГИТЕ СРОЧНО!!!Разработать программу для вычисления значения функций f1(x) и f2(x). Вычисления значений функций организовать для ряда значений аргумента, изменяющегося в пределах от хнач до хкон. с шагом ∆х. Указанные значения вводит пользователь. Организовать проверку на корректность введенного интервала хнач < хкон. При возникновении ошибок должны появляться соответствующие сообщения. ...
C++ Как собрать программу, которая будет запускаться на других кампах с windows xp/7?? Доброе время суток форумчане и посетители. Кодю я в visual studio 2010 на Си/С++/winapi Подскажите пожалуйста начинающему прогеру такую штуку, Как создать exe который будит запускаться на других кампах с windows xp/7 на которых нету visual studio?? Помогите своим личным опытом или ссылочкой. подробнее

Показать сообщение отдельно
dzrkot
zzzZZZ...
519 / 349 / 53
Регистрация: 11.09.2013
Сообщений: 1,997

проверьте, кажется сам нашёл ошибку уже - C++

02.10.2013, 22:21. Просмотров 396. Ответов 12
Метки (Все метки)

Вообщем захотел сделать задачку, чтение из файла символов произвольной длинны и поиск их кол-ва символов. Создаю 2 массива, Под длину массив a, под символы - массив b, начинаю считывать, всё правильно в цикле, а вот когда пытаюсь после цикла вывести массив а, то он почему-то обращается по другим адресам, т.е. а[0] в цикле не своответствует а[0] вне цикла, в чём фишка.
Ну и заодно хотелось бы узнать как записать все символы в массив, это получается мне надо делать массив указателей на др массивы? и потом записывать через указатели всё туда?
Плз подскажите, я же сегодня не усну спокойно))


я походу понял пока писал комментарии, в чём фишка, но прошу проверить вас, там написано напротив a=new [count+1]

файл имеет вид:
t233
ydsa
ud
aaaaa
wwwww


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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
#include <iostream>
#include <fstream>
#include <string.h>
using namespace std;
int main()
{
ifstream somefile("xxx.txt"); // открываю для чтения
 
int size=sizeof(char);
int count=0;
char *b; // динамич массив для строки символов
int *a;   // динамич массив для длины
int i=0; // счётчик для массива а, соответственно длина 1ого слова пишется в a[0]
int s;  // просто для ограничения for после while
 
while (!somefile.eof())
{
b = new char[size]; //выделяем память под 1 символ
somefile>>b; //сам поток
 
a = new int[++count]; //хм...count+1 выделит память под под 2 элемента типа инт в другой произвольной области(перепутал с арифметикой указателей...), а я думал что последовательно...походу вот что происходит.
 
 
size = strlen(b); //ищем длину слова
a[i]=size;          //сохраняем в массив
 
cout<<"a["<<i<< "] = "<<a[i]<<endl;
cout<<"adress : "<<&a[i]<<endl;
i++;
s=i;
}
cout<<"\n\nwhile off"<<endl;
for (int i=0;i<s;i++)
{
cout<<"a["<<i<< "] = "<<a[i]<<endl;
cout<<"adress : "<<&a[i]<<endl;
}
    delete []a;
    delete []b;
    return 0;
}
Добавлено через 5 минут
да, я прав, но как теперь исправить прогу чтобы получить длину массива а, который я создаю (до цикла надо создавать) )...

Добавлено через 35 минут
хм...вынес a = new int[0]; за цикл, и о чудо, запись в массив пошла как надо по памяти, при том что объявлен только 1 элемент массива, и не надо ничего извлекать)) и тут то я и вспомнил, что читал об этом не так давно....)

по прежнему интересует как сделать норм работу массива б
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru