Вопрос по С++

SLON

PitStop
Программирование под Symbian на C++

Собственно сабж, интересует
кто какую IDE использует для разработки приложений
совместима ли SDK для s60_2nd с Microsoft Visual C++ 6.0 и как её подключать, для чего предназначен Carbide.c++ v1.2 ?
и собственно сами



Сам в программинге недавно, месяц как изучаю С++ :?
 

no0se

Al-Qaeda
помгите решить задачку.
Имеется три матрицы, ввод матрицы организовать автоматически или использовать ввод отдельной функции, перемножить любые две матрицы по желанию пользователя.
Умножить матрицы на любое число. Результат вывести на экран
з.ы помогите буду очень благодарен
 

quant

yeah
Відповідь: Вопрос по С++

Код:
[COLOR="DarkOrchid"]#include <cstdio>
#include <string>[/COLOR]
[COLOR="DarkRed"]using[/COLOR] std::string;

[COLOR="DarkGreen"]int[/COLOR] main () {
   string st ([COLOR="Magenta"]"hello world"[/COLOR]);
   printf ([COLOR="Magenta"]"%s\n"[/COLOR], st);
   [COLOR="DarkRed"]return[/COLOR] 0;
}
Код:
$ g++ sol.cpp -o sol
sol.cpp: In function ‘int main()’:
sol.cpp:7: warning: cannot pass objects of non-POD type ‘struct std::string’ through ‘...’; call will abort at runtime
где ошибка ??? почему вызывается исключение ?
во время выполнения выплывает Illegal instruction (core dumped)
использовать char[] не хочеццо - нужно что-то динамичное и большое, подошёл бы вектор но его же по %s не выведешь
 

quant

yeah
Відповідь: Вопрос по С++

для вывода строки выход нашёл
Код:
[COLOR="DarkOrchid"]#include <cstdio>
#include <string>[/COLOR]
[COLOR="DarkRed"]using[/COLOR] std::string;

[COLOR="DarkGreen"]int[/COLOR] main () {
   string st ([COLOR="Magenta"]"hello world"[/COLOR]);
   printf ([COLOR="Magenta"]"%s\n"[/COLOR], st[b].c_str()[/b]);
   [COLOR="DarkRed"]return[/COLOR] 0;
}
но вот с чтением никак не могу разобраться, буду благодарен за подсказку как осилить это без использования потокового ввода
 

dreamer

Member
Re: примитив С++

Лучше уж так:
Код:
char ссс[16]={0xE8,0,0,0,0,0x58,04,0x12,0x50,0xFF,0x15,0,0,0,0,0xC3},*pi;
int i=(int)GetModuleHandle("boo.dll");
*((int*)&ccc[1]) = i;
 

zx

Member
Re: примитив С++

шото я спросонья не сообразю шо за гадость из всего этого получицца..
если это вместо чесной прилинковки дллок лоадером то нафига..
еси своя хитрожопая модульность то зачем если она такаяже..

а если какинить оррыфисы.. то их и так вроде хватает..
 

quant

yeah
возникла необходимость создать стек с возможностью доступа по индексу и для экономии места избавиться от ссылок и воспользоваться линейной структурой
vector не подходит - много места жрёт, создаю свой класс storage
Код:
// 1 interface

class storage {
   private:
      unsigned char * data;
      unsigned length;
   public:
      storage ();
      const unsigned& size() const;
      unsigned char& operator[] (const unsigned&);
      unsigned char backnpop();
      void push (const unsigned char&);
};

// 0 interface implementation 1

storage::storage() : data (NULL), length(0) {
};

const unsigned& storage::size() const {
   return length; 
};

unsigned char& storage::operator[] (const unsigned& pos) {
   return *(data + pos);
};

unsigned char storage::backnpop () {
   return *(data + (--length));
};

void storage::push (const unsigned char& value) {
   unsigned char* temp (new unsigned char[length + 1]);
   unsigned char *t (temp), *d (data);
   unsigned it (0);
   if (length) {   
      do {
         *(t++) = *(d++);
      } while (++it != length);
   };
   *t = value;
   delete [] data;
   data = temp;
   ++length;
};

// 0 implementation
но этот класс работает много медленнее vector'а, почему так ?
 

dreamer

Member
возникла необходимость создать стек с возможностью доступа по индексу и для экономии места избавиться от ссылок и воспользоваться линейной структурой
vector не подходит - много места жрёт, создаю свой класс void
Код:
storage::push (const unsigned char& value) {
   unsigned char* temp (new unsigned char[length + 1]);
но этот класс работает много медленнее vector'а, почему так ?
Потому что ты каждый раз выделяешь память а это одна из самых медленных операций.
 

quant

yeah
а как же тогда в векторе добавляется элемент ? насколько я знаю выделить память в определённой области памяти нельзя - так бы я выделил байт (m + length + 1) и занёс туда value
или есть способ ?
я даже pop полный не делаю, думал оно просто лётать будет
 
Зверху