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

Объясните ошибку - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Удаление из текстового файла http://www.cyberforum.ru/cpp-beginners/thread884773.html
Необходимо удалить структуру из текстового файла. Я создал 2 файла. Считываю все с первого , вбиваю во второй. Затем наоборот. Если удалять первую запись , то она бесконечно перезаписывается. Если вторую или третью то она записывает только во второй файл.В общем вот мой код: #include <iostream> #include <fstream> using namespace std; struct workers { unsigned int id; char name;
C++ Иероглифы после CharToOemA Подскажите, почему после казалось бы простейшей операции в "buf" оказываются каракули? setllocale вроде не помагает .... Каракули я вижу в дебагере и если просто выводить в окошко в WinApi приложение. std::string str="ПРЭВЭД МЕДВЕД"; char* buf=new char; strcpy_s(buf,str.size()+1,str.c_str()); CharToOemA(buf,buf); http://www.cyberforum.ru/cpp-beginners/thread884771.html
C++ Решение транспортной задачи с промежуточными перевозками для нахождения оптимальной конфигурации электрической сети
Исходные данные для траспортной задачи с промежуточными перевозками Задаются: Конфигурация сети вида: Мощности пунктов: P2=0,6 Ое P3=0,3 Ое P4=1,5 Ое Мощность электростанции(пункт 1)=2,4 Ое и удельные стоимости транспорта энер¬гии вида
C++ Чтение данных из файла
1. Дан файл с именами людей, датами рождения и смерти. Прочитать данные из файла и поместить их в структуру данных, которая будет выглядеть как "Имя человека" tab "дата рождения" tab "дата смерти" . При этом запрещено использовать структуру данных с константным количеством элементов. Вывести на консоль данные всех людей в виде оформленной таблицы
C++ функция с прототипом int (string, string) http://www.cyberforum.ru/cpp-beginners/thread884748.html
В файле USAPresidendid.txt приведены данные о бывших президентах США: имя, время нахождения на посту президента, дата рождения, дата смерти. Даты даны в формате mm/dd/yyyy. Если президент живой, то вместо даты смерти стоит звездочка '*'. Разделителем полей является знак табуляции '\t'. 1. Прочитать данные из файла и поместить их в структуру данных, которая удобна для использования при решении...
C++ Microsoft Visual studio 2012 (как включить подсказки?) как включить подсказки. Например если я ставлю { чтоби она автоматически закривалась } что бы когда я написал оператор for автоматически визивалься конструктор етого оператора. Так как в X cod. мне етого очень не хватает в Microsoft visual studio 2012 подробнее

Показать сообщение отдельно
Мимино
 Аватар для Мимино
180 / 151 / 5
Регистрация: 22.05.2013
Сообщений: 435
Записей в блоге: 1
30.05.2013, 12:08     Объясните ошибку
Цитата Сообщение от T110E5 Посмотреть сообщение
Не катит, если у переменной NewP брать *, то компилятор выдает ошибку: invalid conversion from `int' to `int*'
Если честно, то я никогда не присваивал адрес вот таким вот образом. Но я точно могу сказать, что
C++
1
*NewP = 0x22ff54;
присваивает значение 22ff54 (2293588) целому, находящемуся по адресу NewP. Если NewP нужно присвоить адрес переменной, то это будет так:
C++
1
NewP = &value
А вот как напрямую задать адрес NewP... боюсь, я с этим не смогу помочь. Сам еще учусь
Порылся в инете, вот что нашел:
char *p;

char b, char c = 'А';

р = &b; // теперь p содержит адрес хранения ещё не инициализированной переменной b;

*р = b; // инициализируем переменную b значением 'А'.



Применительно к программированию микроконтроллеров, указатели можно использовать, к примеру, для записи данных в порт ввода/вывода. Предположим, регистр данных порта расположен в памяти по адресу 0x16. В этом случае, для записи в него значения 0xFF можно воспользоваться следующим фрагментом программного кода:

unsigned char *p; //объявление указателя на символ

p = 0x16; // присваиваем указателю адрес порта PORTx

*p = 0xFF; // теперь на выводах порта PORTx будут все единицы.
Другими словами, мой вариант был верным. Вот только почему не работает...
Похоже, ответ дал сам компилятор:
The variable 'NewP' is being used without being initialized.
Добавлено через 24 минуты
Еще немного погуглив:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
  int main(){  
  setlocale(LC_ALL, "Russian");
  system("color 0E");
  srand(time(NULL));
  cout << "-------------------" << endl;
  int var = 100;
  int *NewP;
  int *p = &var;
  cout << "P = " << p << " = " << *p << endl;
  NewP = (int *)0x22ff54;
  cout << "NEWP = " << NewP << " = " << *NewP << endl;
  
 system("pause");
 return 0; 
 }
Вот так вроде правильно. Правда, при запуске Вам скажут, что прав на доступ к ячейке 0x22ff54 нет. Хотя со 2-го раза сработало.
Миниатюры
Объясните ошибку  
 
Текущее время: 06:19. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru