LINUX.ORG.RU

Сообщения WaldeMar1321

 

Ассемблерная вставка в код C++

Здравствуйте, есть задача: нужно для 16 битной переменной члена класса, написать встроенную функцию которая бы выводила младший байт переменной, и функцию которая бы выводила ее старший байт, на ассемблере. Типо: Class Foo { int A public: ... int Alow()//возвращает младший байт { asm(.?.); } int Ahigh()//Старший байт { asm(...); } }; Если бы я писал такое под DOS или Windows, проблем бы не возникло, но под Linux я не знаю как. Спасибо за помощь.

 , ,

WaldeMar1321
()

сохранить SDL_Surface в файл png?

Собственно именно это меня и интересует. есть SDL_Surface с отрисовваными в нем «тайлами», нужно все это сохранить в png файл с прозрачностью, и без потери качаства желательно. У кого-нибудь есть идеи как такое можно осуществить? Спасибо за вомощь.

 , ,

WaldeMar1321
()

C++ ошибка сегментирования при вызове delete

Помогите новичку. Есть такой код:

#include <iostream>
//прочие includ'ы

using namespace std;

template<typename T>
class Heap
{
   T _heap;
public:
   Heap():_heap(0) {}
   Heap(T V): _heap(V) {}
   Heap<T> operator = (T const& cv){ _heap = (T)cv;}
   operator Heap() {return _heap;}
   operator Heap*() {return (Heap*)_heap;}
   bool operator == (T const& cv) 
   {
      return _heap == cv ? true : false;
   }
   bool operator != (T const& cv) 
   {
      return _heap != cv ? true : false;
   }
   ~Heap(){}   
}

typedef Heap<unsigned short int> Cell;
/* тут идут всякие функции, векторы и бла бла бла
   ...
   ...
   ...
*/

int main(int argc, char* argv[])
{
   int ar_size = 100;
   if(argc > 1)
     ar_size = atoi(argv[1]);
   if((ar_size % 2) != 0)
     ar_size--;
   Cell **Area = new Cell *[ar_size];
   for(int i = 0; i <= ar_size; i++)
      Area[i] = new Cell[ar_size];
   /*Что-то происходит...
   ...
   ...
   ...

   Дальше идет очистка памяти.
   вызывается erase для векторов и т.д. и т.п.
*/
   cout<<"Almost ";//проверка - доходит ли до этого места?
   for(int i = 0; i <= ar_size; i++)
      delete[] Area[i];// вот тут проблема, если ar_size <= 100
// все проходит нормально, если больше - ошибка сегментации.
   cout<<"Done"<<endl;//до этого места не всегда доходит
   return 0;
}
Если последний цикл убрать, то заканчивается нормально. Но без него не катит
Кто нибудь сталкивался с подобного рода проблемой? Если да, то пожалуйста опишите способы решения
Заранее благодарен.

 ,

WaldeMar1321
()

RSS подписка на новые темы