class_docstr: The main top-level class that you instantiate once, or once per module.
  
  Example usage:
  
      ffi = FFI()
      ffi.cdef("""
          int printf(const char *, ...);
      """)
  
      C = ffi.dlopen(None)   # standard library
      -or-
      C = ffi.verify()  # use a C compiler: verify the decl above is right
  
      C.printf("hello, %s!\n", ffi.new("char[]", "world"))
class_docstr_tok: ["The","main","top-level","class","that","you","instantiate","once",",","or","once","per","module",".","Example","usage",":","ffi","=","FFI","(",")","ffi.cdef","(","``","''","''","int","printf","(","const","char","*",",","...",")",";","``","''","''",")","C","=","ffi.dlopen","(","None",")","#","standard","library","-or-","C","=","ffi.verify","(",")","#","use","a","C","compiler",":","verify","the","decl","above","is","right","C.printf","(","``","hello",",","%","s","!","\\n","''",",","ffi.new","(","``","char","[","]","''",",","``","world","''",")",")"]
docstr: Allocate an instance according to the specified C type and
  return a pointer to it.  The specified C type must be either a
  pointer or an array: ``new('X *')`` allocates an X and returns
  a pointer to it, whereas ``new('X[n]')`` allocates an array of
  n X'es and returns an array referencing it (which works
  mostly like a pointer, like in C).  You can also use
  ``new('X[]', n)`` to allocate an array of a non-constant
  length n.
  
  The memory is initialized following the rules of declaring a
  global variable in C: by default it is zero-initialized, but
  an explicit initializer can be given which can be used to
  fill all or part of the memory.
  
  When the returned <cdata> object goes out of scope, the memory
  is freed.  In other words the returned <cdata> object has
  ownership of the value of type 'cdecl' that it points to.  This
  means that the raw data can be used as long as this object is
  kept alive, but must not be used for a longer time.  Be careful
  about that when copying the pointer to the memory somewhere
  else, e.g. into another structure.
code: def new(self, cdecl, init=None):
      """Allocate an instance according to the specified C type and
      return a pointer to it.  The specified C type must be either a
      pointer or an array: ``new('X *')`` allocates an X and returns
      a pointer to it, whereas ``new('X[n]')`` allocates an array of
      n X'es and returns an array referencing it (which works
      mostly like a pointer, like in C).  You can also use
      ``new('X[]', n)`` to allocate an array of a non-constant
      length n.
  
      The memory is initialized following the rules of declaring a
      global variable in C: by default it is zero-initialized, but
      an explicit initializer can be given which can be used to
      fill all or part of the memory.
  
      When the returned <cdata> object goes out of scope, the memory
      is freed.  In other words the returned <cdata> object has
      ownership of the value of type 'cdecl' that it points to.  This
      means that the raw data can be used as long as this object is
      kept alive, but must not be used for a longer time.  Be careful
      about that when copying the pointer to the memory somewhere
      else, e.g. into another structure.
      """
      if isinstance(cdecl, basestring):
          cdecl = self._typeof(cdecl)
      return self._backend.newp(cdecl, init)
  
imports: import sys, types
  from .lock import allocate_lock
  from .error import CDefError
  from .None import model
label_desc: Use image node_id 13 for calling the FFI obj's underlying member method code with example usage: obj.new(cdecl, init) and returns: self