ok, i found that i can copy the content of the array to a new declared multidimensinal array to use its dimensions, but i still think that the topic code exmaple should work...

Code:
#include <acknex.h>

int INT_CalculeIndex ( int IndexX, int IndexY )
{
	return ( (IndexX*8)+IndexY );
}

function main ()
{
	wait(3);
	
	STRING *stemp = str_create ( "" );
	
	int IndexY, IndexX, CalculatedIndex;
	
	char CHR_Array[8][8];
	
	for ( IndexX=0; IndexX<8; IndexX++ )
	{
		for ( IndexY=0; IndexY<8; IndexY++ )
		{
			CalculatedIndex = INT_CalculeIndex ( IndexX, IndexY );
			
			// I can assign values to the array with its dimensions
			//CHR_Array[IndexX][IndexY] = CalculatedIndex;
			
			// also calculating a unique index
			CHR_Array[CalculatedIndex] = CalculatedIndex;
		}
	}
	
	char *CHR_Pointer;
	//CHR_Pointer2 = sys_malloc ( sizeof(char) * 64 );
	
	CHR_Pointer = CHR_Array;
	
	char CHR_Array2[8][8];
	memcpy ( CHR_Array2, CHR_Pointer, sizeof(char)*64 );
	
	while ( !key_esc )
	{
		for ( IndexX=0; IndexX<8; IndexX++ )
		{
			for ( IndexY=0; IndexY<8; IndexY++ )
			{
				CalculatedIndex = INT_CalculeIndex ( IndexX, IndexY );
				
				draw_text ( str_for_int(NULL,CHR_Array[CalculatedIndex]), IndexX*30, IndexY*30, COLOR_WHITE );
				
				draw_text ( str_for_int(NULL,CHR_Array[IndexX][IndexY]), 300+(IndexX*30), IndexY*30, COLOR_WHITE );
				
				draw_text ( str_for_int(NULL,CHR_Array2[CalculatedIndex]), IndexX*30, 300+(IndexY*30), COLOR_WHITE );
				
				draw_text ( str_for_int(NULL,CHR_Array2[IndexX][IndexY]), 300+(IndexX*30), 300+(IndexY*30), COLOR_WHITE );
			}
		}
		
		wait(1);
	}
	
	sys_exit ( NULL );
}