# Re-Learning

Show 80 post(s) from this thread on one page
Page 2 of 2 First 12
• 04-20-2005
Dave_Sinkula
Quote:

Originally Posted by Kramer55
Another quick question, what is the point of having size_t in this code?

I know it returns the size, but what is the point of having the size?

It doesn't "return" the size. A size_t is a type, an unsigned integral type. The result of the sizeof operator has type size_t.

http://www.lysator.liu.se/c/rat/c3.html#3-3-3-4:
Quote:

The type of sizeof, whatever it is, is published (in the library header <stddef.h>) as size_t, since it is useful for the programmer to be able to refer to this type. This requirement implicitly restricts size_t to be a synonym for an existing unsigned integer type, thus quashing any notion that the largest declarable object might be too big to span even with an unsigned long. This also restricts the maximum number of elements that may be declared in an array, since for any array a of N elements,

N == sizeof(a)/sizeof(a[0])

Thus size_t is also a convenient type for array sizes, and is so used in several library functions. (See §4.9.8.1, §4.9.8.2, §4.10.3.1, etc.)
It is suited to an example more like this.
Code:

#include <iostream>
#include <cstddef>

using namespace std;

int main()
{
int array[] = {1,2,3,4,5,6,7,8,9,10};
for ( size_t i = 0; i < sizeof array / sizeof array[0] ; ++i )
{
cout << array[i] << endl;
}
return 0;
}

Then you don't need to hard-code the array size in both the definition and the loop.

Quote:

Originally Posted by Tronic
When you have this code:
Code:

for(int i = 0; i < i < 10; i++)
{

}

It will iterate 10 times, or more specifically, every time i is less than the value 10, and greater than or equal to the value of zero. Sometimes people confuse the "byte size" of a variable, with the "max-value" of a variable.

Say you have the code..
Code:

#include <iostream>
#include <conio.h>

int main()
{
char *name;
std::cout << "Enter in name\n"
<< "> ";
std::cin >> name;
for(char *c = name; *c < sizeof(name); c+=sizeof(char))
{
std::cout << *c;
}
getch();
return 0;
}

What a train wreck of an example.
• 04-20-2005
swoopy
>What a train wreck of an example.
I doubt this one will make the FAQ. :rolleyes:
• 04-20-2005
Tronic
How about taking my example code as an example that wasn't intended to run correctly and get rid of your anal tendancies a wee bit? I was showing him a concept of how incrementing by the size of a variable vs. and index would work generally, get off my case.
• 04-21-2005
treenef
[sarc]good thing the rep system is no longer in place eh? lol [sarc/]

:confused:
• 04-22-2005
macman
yeah i wish rep was back
Show 80 post(s) from this thread on one page
Page 2 of 2 First 12