allocate memory to Char **

Lamine mohamadoulamine at gmail.com
Tue Apr 29 11:11:46 UTC 2014


Hi,

I want to do write this C code in haskell code, but i have some pb:

int w ;
char **varnames = ccl_new_array (char *, w);

int i;
           for (i = 0; i < w; i++)
             {
               varnames[i] = ccl_new_array (char, 100);
               sprintf (varnames[i], "x%d", i);
             }

I try this code unsing mallocList to (http://lpaste.net/report/712):
mallocList :: [CString] -> IO (Ptr CString)
mallocList xs = do let n = Prelude.length xs
                    p <- mallocBytes (n*100)
                    forM_ (Prelude.zip [0..] xs)
                     (uncurry (pokeByteOff p))
                    return p

let n = sizeOf(undefined :: CString)
            allocaArray w $ \var -> do
                   xs <- peekArray (w*n) var
                   varnames <- mallocList xs

I have an error "segmentation fault(core dumped)".
can someone please help me? Thank you.

Lamine


More information about the FFI mailing list