Re: How is memory allocated
In 'comp.lang.c', email@example.com (Samuel Thomas) wrote:
To answer the question of your subject line, the memory is allocated in a
> Could you please go through the code I wrote and help me with my
> #include <stdio.h>
> #include <conio.h>
Non standard header.
> void printnamefirst(char);
> void printnamesec(char);
> void main()
main returns inbt. Always. Even the old notation (pre-ANSI, aka K&R):
implies a implicit return type of int. Note that 'void' is a new concept
brought with the first release of the standard C (aka ANSI-C89 or ISO-C90).
Non standard function.
> void printnamefirst(char nm)
> char nam ="Samuej Thomas";
> printf("%s \n",nam);
> void printnamesec(char ns)
> printf("%s \n",ns);
> 1.Is it safe to use the variables that are allocated in one function,
> in another function as I have done by printing a string in the
> printnamesec, but which has been declared in printnamefirst function?
> When does it become unsafe to use variables declared in one function
> else where?
say a() call b().
It is safe to define a variable in a() and to pass its address to b().
void a (void)
It is unsafe to define a variable in b() and to return its address to a():
int x = 123;
> 2.Is it possible to make 'pass by value' work with character strings
> so that they dont get changed? Do they always get passed as reference
For a string (array of char), the passed value is an address. The parameter
is a pointer of the correct type. You can use the 'const' qualifier to inform
the compiler that:
- The function will not change the original value of the string
- Constant strings (e.g. string literals) are accepted.
f (char const *s)
> values when passed across functions? Does the value of the nam
> variable declared in printnamefirst get modified because of the 'pass
> by reference' mechanism?
No, for the simple reason that there is no pass-by-reference in C.
-ed- emdelYOURBRA@noos.fr [remove YOURBRA before answering me]
The C-language FAQ: http://www.eskimo.com/~scs/C-faq/top.html
FAQ de f.c.l.c : http://www.isty-info.uvsq.fr/~rumeau/fclc/
|All times are GMT. The time now is 08:06 PM.|
Powered by vBulletin®. Copyright ©2000 - 2014, vBulletin Solutions, Inc.
SEO by vBSEO ©2010, Crawlability, Inc.