help needed about dynamic space allocation

fano at lifia.UUCP fano at lifia.UUCP
Sat Nov 22 04:12:26 AEST 1986


forgive the ignorance of a novice C-programmer:

I need advice on dynamic space allocation for multidimensionnal arrays:

Here is a way I have implemented dynamic allocation for a 2 X 2 matrix named
sig in a C-source file named combin1.c:
(I'll explain further the reason why I'm not satisfied with that solution)

  BEGINNING OF THE EXAMPLE:

  float **sig;                                    /* matrix declaration     */
  ....

  sig = (int *)malloc(n * sizeof(int));           /* allocates space for sig */
  for ( i = 0; i < n; i++)                        /* lines adresse           */
    {
      sig[i] = (float *)malloc(n * sizeof(float));/* allocates space for     */
    }                                             /* columns of line i       */
  ....

  for (i = n-1 ; i >= 0; i--)
    { 
      free(sig[i]);                                /* desallocates space     */
    }
  free(sig);

  END OF THE EXAMPLE


during the compiling time, I get the following warning:
     "combin1.c", line 220: warning: illegal pointer combination
any-way the program runs, and gives the desired results.


The compiler message suggests that I didn't use the proper way to implement
matrix dynamic allocation. So, could someone over there give me advices for
a cleaner solution.

Thanx.
-- 


    fano rampa*
///////////////////////////////////////////////////////////////////////////////

                           "Carmen lips are more exciting than Common lisp..."
                                                         -G.Bizet-

fano at lifia.UUCP      or     mcvax!lifia!fano



More information about the Comp.lang.c mailing list