-1

''' FT_Face face = nullptr;;

FT_GlyphSlot g = face->glyph;
FT_Library ft;
if (FT_Init_FreeType(&ft))
    std::cout << "ERROR::FREETYPE: Could not init FreeType Library" <<
    std::endl;

if (FT_New_Face(ft, "fonts/arial.ttf", 0, &face))
    std::cout << "ERROR::FREETYPE: Failed to load font" << std::endl;
FT_Set_Pixel_Sizes(face, 0, 48);
if (FT_Load_Char(face, 'X', FT_LOAD_RENDER))
    std::cout << "ERROR::FREETYTPE: Failed to load Glyph" << std::en '''

When I compile the program, I get this error. "Unhandled exception thrown: read access violation.face was nullptr."

Rabbid76
  • 202,892
  • 27
  • 131
  • 174

1 Answers1

0

The problem(mentioned error) is that somewhere in your program you're dereferencing face when it is nullptr which leads to undefined behavior.

To solve this add a check to see if face is nullptr or not before dereferencing it as shown below:

//go inside the if block only if face is not nullptr
if(face !=nullptr)
{
    //you can safely dereference face here
}
//otherwise print a message to the console
else 
{
    //at this point face is nullptr so don't dereference it at this point
    std::cout<<"cannot dereference face "<<std::endl;
    
}

Additionally make sure(if not already) that face is initialized i.e., it points to an object of appropriate type.

Jason
  • 36,170
  • 5
  • 26
  • 60
  • Thank you, I found such a solution to my problem `T_New_Face(ft, "fonts/arial.ttf", 0, &face)` but I get a different error, thanks anyway – Yasin Işıktaş May 28 '22 at 17:36