This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

malloc and two dimensional array ( char * * )

I want to allocate memory which I can use as a two dimensional array. But the following code is not working

unsigned char xdata ** memo;
unsigned char i = 0;
// n is number of rows
// size is number of columns
memo = (unsigned char xdata **) malloc( n*2 );
for ( ; i < size; i++)
	memo[i] = (unsigned char xdata *)malloc( size );
this code was inspired from
C++ new operator
memo = new char * [n];
for (int i=0; i < n; i++)
	memo[i*2] = new char [size];
Can you help me resolving this problem? Is there any problem with the logic?

PS: Fairly large memory has been allocated using init_mempool().

Parents Reply Children
  • If you have to wrestle this into a '51, why not define the variables in the areas you want to malloc as C externs and use a small assembler module to define the locations.

    That way you can greb what you need to grab and leave the rest to the compiler.

    Erik

    Ps are you related to Abdul Rauf, whom we see now and then in the '51 fora?

  • RE: Erik

    why not define the variables in the areas you want to malloc as C externs ...

    that sounds like a good idea...but honestly I don't know how to do that...but I'll think over it...thanks

    are you related to Abdul Rauf...

    Well, I'm not related to the Abdul Rauf you are talking about...but my father's name is also Abdul Rauf who could not be here cuz he is a biologist :)