Thread overview
variable-length arrays
Feb 27, 2008
John
Feb 27, 2008
Jan Knepper
Feb 28, 2008
John
Feb 28, 2008
John
Mar 03, 2008
John
Mar 01, 2008
Jan Knepper
February 27, 2008
int main(int argc, char *argv[argc])
{
	return sizeof argv;
}

Is this must return 4?
February 27, 2008
You're asking to return the size of a pointer...
A pointer is 4 bytes on 32 bits Windows...



John wrote:
> int main(int argc, char *argv[argc])
> {
> 	return sizeof argv;
> }
> 
> Is this must return 4?

-- 
ManiaC++
Jan Knepper

But as for me and my household, we shall use Mozilla...
www.mozilla.org
February 28, 2008
int main(int argc, char *argv[argc])
{
    char *vec[] = {"foo", "bar", "google"};
    return sizeof vec;
}

But why this returns 12?
VLAs in both cases are the same.
February 28, 2008
Ouch...

int main(int argc, char *argv[argc])
{
	int n = 2;
	++n;
	char *vec[n] = {"foo", "bar", "google"};
	return sizeof vec;
}

scppn -A -v2 +all -6 test.c
Digital Mars C/C++ Compiler Version 8.50.4n
Copyright (C) Digital Mars 2000-2006.  All Rights Reserved.
Written by Walter Bright
www.digitalmars.com
 'test.c'
main
Internal error: init.c 1514

--- errorlevel 1
March 01, 2008
vec is an array of 3 pointers of 4 bytes each...
3 * 4 = 12 last time I checked...



John wrote:
> int main(int argc, char *argv[argc])
> {
>     char *vec[] = {"foo", "bar", "google"};
>     return sizeof vec;
> }
> 
> But why this returns 12?
> VLAs in both cases are the same.


-- 
ManiaC++
Jan Knepper

www.janknepper.com

But as for me and my household, we shall use Mozilla...
www.mozilla.org
March 03, 2008
And what about bottom?

== Quote from John (smith@mail.com)'s article
> Ouch...
> int main(int argc, char *argv[argc])
> {
> 	int n = 2;
> 	++n;
> 	char *vec[n] = {"foo", "bar", "google"};
> 	return sizeof vec;
> }
> scppn -A -v2 +all -6 test.c
> Digital Mars C/C++ Compiler Version 8.50.4n
> Copyright (C) Digital Mars 2000-2006.  All Rights Reserved.
> Written by Walter Bright
> www.digitalmars.com
>  'test.c'
> main
> Internal error: init.c 1514
> --- errorlevel 1