ezab066@ut-emx.UUCP (Albert Wu) (08/01/90)
The following is part of an example I saw on p.301 of Byron S.
Gottfried's Schaum's Outline Series "Programming with C", copyrighted
1990. It doesn't compile. Can anyone tell me what's wrong ? I am
a total beginner in C. Pls don't laugh.
#include <stdio.h>
#define MAXCOLS 30
main()
{
int (*a)[MAXCOLS],(*b)[MAXCOLS],(*c)[MAXCOLS];
.........
*a = (int*) malloc (rows * ncols * sizeof(nt));
*b = (int*) malloc ( nrows * ncols * sizeof(int));
*c =(int*) malloc ( nrows * ncols * sizeof(int));
} jdc@naucse.cse.nau.edu (John Campbell) (08/03/90)
From article <34877@ut-emx.UUCP:, by ezab066@ut-emx.UUCP (Albert Wu):
: The following is part of an example I saw on p.301 of Byron S.
: Gottfried's Schaum's Outline Series "Programming with C", copyrighted
: 1990. It doesn't compile. Can anyone tell me what's wrong ? I am
: a total beginner in C. Pls don't laugh.
:
:
: #include <stdio.h>
:
: #define MAXCOLS 30
:
: main()
: {
: int (*a)[MAXCOLS],(*b)[MAXCOLS],(*c)[MAXCOLS];
:
: .........
:
: *a = (int*) malloc (rows * ncols * sizeof(nt));
: *b = (int*) malloc ( nrows * ncols * sizeof(int));
: *c =(int*) malloc ( nrows * ncols * sizeof(int));
: }
Well, except for the syntax errors
*a = (int*) malloc (nrows * ncols * sizeof(int)); /* I presume? */
and the need to define nrows and ncols, what is this supposed
cdecl says:
``declare a as pointer to array 30 of int''
Now trying to malloc at this point sounds like a real mistake. I
sure wish I knew what the author was thinking of here.
Anyone else? (Karl?)
--
John Campbell jdc@naucse.cse.nau.edu
CAMPBELL@NAUVAX.bitnet
unix? Sure send me a dozen, all different colors.wallace@ynotme.enet.dec.com (Ray Wallace) (08/08/90)
In article <34877@ut-emx.UUCP>, ezab066@ut-emx.UUCP (Albert Wu) writes... >The following is part of an example I saw on p.301 of Byron S. >Gottfried's Schaum's Outline Series "Programming with C", copyrighted > *a = (int*) malloc (rows * ncols * sizeof(nt)); > *b = (int*) malloc ( nrows * ncols * sizeof(int)); > *c =(int*) malloc ( nrows * ncols * sizeof(int)); should be a = (int*) malloc (nrows * ncols * sizeof(int)); b = (int*) malloc ( nrows * ncols * sizeof(int)); c =(int*) malloc ( nrows * ncols * sizeof(int)); that is you need to remove the pointer prefix from in front of the variables on the left side of the assignment statement. --- Ray Wallace (INTERNET,UUCP) wallace@oldtmr.enet.dec.com (UUCP) ...!decwrl!oldtmr.enet!wallace (INTERNET) wallace%oldtmr.enet@decwrl.dec.com ---