Computer Science Canada array inside a function |
Author: | unoho [ Tue Oct 05, 2010 7:45 pm ] | ||
Post subject: | array inside a function | ||
hey guys, im having problem in the following code
everytime i try that, the IDE gives me an error sometime about c89 ISO etc. etc. anyone knows what that means? but when i change that n to some number, it works fine. any ideas/comments is much appreciated. |
Author: | TheGuardian001 [ Tue Oct 05, 2010 8:05 pm ] |
Post subject: | Re: array inside a function |
What IDE/Compiler are you using? I have no problems with similar code using gcc. Oh, and what specific error is it giving you? C89 is a rule set (and a fairly old one at that,) not an error. |
Author: | unoho [ Tue Oct 05, 2010 8:59 pm ] |
Post subject: | Re: array inside a function |
it says - ISO C89 forbids variable-size array 'a' " - ISO C89 forbids mixed declarations and code - unsuccessful build i tried it on Quicny 2005 and DevC++ and both r same. so from what i can understand, u can't put a variable as an array size? EDIT: OMG this is soo stupid, it works fine when i try to do it in command prompt using gcc 3.4.5 but it wont work with the IDEs |
Author: | TheGuardian001 [ Tue Oct 05, 2010 9:18 pm ] |
Post subject: | Re: array inside a function |
From what I understand, it depends on what version of the C standard your compiler uses. C89 doesn't allow it, C90 doesn't allow it, however C99 does. Since your compiler uses C89, you won't be able to do this without switching/updating your compiler. Edit: If your IDE uses GCC (MinGW on windows,) you can force it to use C99 by adding the -std=c99 (case sensitive, c99 not C99,) so long as your version of it supports the c99 standard. |
Author: | unoho [ Tue Oct 05, 2010 9:56 pm ] |
Post subject: | RE:array inside a function |
thank you soo much. by default, the IDE had the C99 option unchecked for c programs. but ya..had to spent 4 hours trying to fix this problem :S but at least i know how to use command promt to get to running gcc:D ![]() |
Author: | coolgod [ Sat Oct 09, 2010 12:22 am ] |
Post subject: | Re: array inside a function |
how is the compiler suppose to allocate memory for the program if it doesn't know how much space it need? this isn't a dynamic array..... |
Author: | TheGuardian001 [ Sat Oct 09, 2010 12:42 am ] | ||
Post subject: | Re: array inside a function | ||
coolgod @ Sat Oct 09, 2010 12:22 am wrote: how is the compiler suppose to allocate memory for the program if it doesn't know how much space it need?
this isn't a dynamic array..... This isn't an attempt to make a dynamic array. The purpose of this is to create an array of size x (useful in a function, if it needs a temporary array of size that will be determined when the function is called.) So long as x has a value when the array is created, the compiler knows exactly how much space to allocate (x*sizeof(type).) IE:
x resolves to 4, thus this array has 4 elements, and always will. This is not a problem for most modern compilers. Any compiler that conforms to the C99 specifications (however not one that conforms to C89/ANSI C) can do this. |
Author: | DtY [ Sat Oct 09, 2010 3:08 pm ] |
Post subject: | Re: array inside a function |
coolgod @ Sat Oct 09, 2010 12:22 am wrote: how is the compiler suppose to allocate memory for the program if it doesn't know how much space it need?
Which is why there was a problem. Nondymanic arrays with a size computed at runtime wasn't a standard feature of C until C99 (and many people still think it's nonstandard).this isn't a dynamic array..... |
Author: | ncvitak [ Sun Jun 09, 2013 6:16 pm ] | ||
Post subject: | Re: array inside a function | ||
In C to use an array as a function parameter you must pass it as a pointer. Example:
|
Author: | Nathan4102 [ Sun Jun 09, 2013 6:25 pm ] |
Post subject: | RE:array inside a function |
Please don't gravedig old posts. This thread has been dead for almost 3 years now. |
Author: | ncvitak [ Sun Jun 09, 2013 6:27 pm ] |
Post subject: | RE:array inside a function |
Maybe he still wants help ![]() |
Author: | Raknarg [ Sun Jun 09, 2013 6:43 pm ] |
Post subject: | RE:array inside a function |
Necroposting is ok as long as the poster has some new content, I believe. Posts such as "wow thats cool" or "thanks" are frowned upon |