SFML community forums

Help => Graphics => Topic started by: kachan1208 on July 18, 2014, 07:43:11 pm

Title: 2 sf::RectangleShape memory error
Post by: kachan1208 on July 18, 2014, 07:43:11 pm
whe i create 2 sf::RectangleShape in class header, i have memmory error. When i create sf::RectangleShape* i can`t to draw it. How to create 2 independent rectangles?
Title: Re: 2 sf::RectangleShape memory error
Post by: zsbzsb on July 18, 2014, 07:48:51 pm
http://en.sfml-dev.org/forums/index.php?topic=5559.msg36368#msg36368
Title: Re: 2 sf::RectangleShape memory error
Post by: kachan1208 on July 18, 2014, 07:59:31 pm
#ifndef BOARD_H
#define BOARD_H

#include <SFML/Graphics/RenderWindow.hpp>
#include <SFML/Graphics/RectangleShape.hpp>
#include <SFML/Graphics.hpp>

#define numOfCellsH 4
#define numOfCellsW 4
#define cellHeight 128
#define cellWidth 128
#define margin 10

class board
{
public:
    board(sf::RenderWindow* window);
    ~board();
    void drawCellsBackground();
    void drawBoard();


private:
    sf::RenderWindow* mWindow;

    sf::RectangleShape mBoardBox;
    sf::RectangleShape mCellsBg;
};

gdb output :
Code: [Select]

Error in `/home/kachan/work/build-2048-Debug/2048': malloc(): smallbin double linked list corrupted: 0x00000000007b7180 ***

then i try
#ifndef BOARD_H
#define BOARD_H

#include <SFML/Graphics/RenderWindow.hpp>
#include <SFML/Graphics/RectangleShape.hpp>
#include <SFML/Graphics.hpp>

#define numOfCellsH 4
#define numOfCellsW 4
#define cellHeight 128
#define cellWidth 128
#define margin 10

class board
{
public:
    board(sf::RenderWindow* window);
    ~board();
    void drawCellsBackground();
    void drawBoard();


private:
    sf::RenderWindow* mWindow;

    sf::RectangleShape mBoardBox;
   // sf::RectangleShape mCellsBg;
};
and it works
Title: Re: 2 sf::RectangleShape memory error
Post by: zsbzsb on July 18, 2014, 08:03:25 pm
Show the code where you initialize the variables.
Title: Re: 2 sf::RectangleShape memory error
Post by: kachan1208 on July 18, 2014, 08:04:38 pm
program down before i init something, because
#include "board.h"

#include <SFML/Graphics/RenderWindow.hpp>
#include <SFML/Graphics/RectangleShape.hpp>

board::board(sf::RenderWindow *window)
{
    mWindow = window;

//    mBoardBox = new sf::RectangleShape;
    mBoardBox.setSize(sf::Vector2f(((numOfCellsW+1) * margin) + (cellWidth * numOfCellsW),
                                   ((numOfCellsH+1) * margin) + (cellHeight * numOfCellsH)));
    mBoardBox.setPosition(19, 160);
    mBoardBox.setFillColor(sf::Color(187, 173, 160, 255));

//    mCellsBg = new sf::RectangleShape;
//    mCellsBg.setSize(sf::Vector2f(cellWidth, cellHeight));
//    mCellsBg.setFillColor(sf::Color(205, 192, 180, 255));
}

board::~board()
{
}




void board::drawCellsBackground()
{

}

void board::drawBoard()
{
    mWindow->draw(mBoardBox);
//    mWindow->draw(mCellsBg);
}
 
Title: Re: 2 sf::RectangleShape memory error
Post by: kachan1208 on July 18, 2014, 08:30:18 pm
https://www.dropbox.com/s/ofg5wktzhe0117a/mb.mkv (https://www.dropbox.com/s/ofg5wktzhe0117a/mb.mkv)
Title: Re: 2 sf::RectangleShape memory error
Post by: Nexus on July 18, 2014, 08:38:13 pm
Please read the link posted by zsbzsb carefully... and then adjust your problem description.
Title: Re: 2 sf::RectangleShape memory error
Post by: kachan1208 on July 18, 2014, 09:35:15 pm
this is problem only with my knowledge of C++, thats all. i fix it.