delorie.com/archives/browse.cgi | search |
From: | aho450s AT nic DOT smsu DOT edu (Tony O'Bryan) |
Newsgroups: | comp.os.msdos.djgpp |
Subject: | Re: char **argv vs. char *argv[] |
Date: | Mon, 09 Jun 1997 15:17:14 GMT |
Organization: | Southwest Missouri State University |
Lines: | 42 |
Message-ID: | <339c1dee.6520200@ursa.smsu.edu> |
References: | <5ndap9$mgd AT freenet-news DOT carleton DOT ca> <01bc74bd$7df85940$e38033cf AT pentium> <5ngpcv$a6v$3 AT sun1000 DOT pwr DOT wroc DOT pl> |
NNTP-Posting-Host: | forseti.i17.smsu.edu |
To: | djgpp AT delorie DOT com |
DJ-Gateway: | from newsgroup comp.os.msdos.djgpp |
On 9 Jun 1997 11:28:31 GMT, dzierzaw AT elektryk DOT ie DOT pwr DOT wroc DOT pl (Springman) wrote: > The *argv[] is used more probably because it is safer. Why? >A basic example: > void func1 (int *p); > void func2 (int p[]); >Both func1 and func2 accept pointers to ints as arguments. But they are >not exactly the same. The func2 takes a pointer that is constant, i.e. >you'll get warnings when you try to modify its value. Maybe I misunderstood what you said, but gcc reports no errors with this program compiled with "gcc -Wall test.c": int *Func1(int *Pointer) { Pointer += 5; Pointer[5] = 10; return Pointer; } int *Func2(int Pointer[]) { Pointer += 5; Pointer[5] = 10; return Pointer; } int main(void) { int Variable[100]; Func1(Variable); Func2(Variable); return 1; } Note that both functions modify the pointer and place information into the array. Did I misunderstand what you were saying?
webmaster | delorie software privacy |
Copyright © 2019 by DJ Delorie | Updated Jul 2019 |