Where the variable is stored has nothing to do with how it does pointer math. I can't see your code from here, but I'd venture they were all on the stack, with nothing in the heap. What type it's stored in does matter. Math on pointers is done in multiples of the base size, math on integers is just plain math.
So &a-&b is arithmetic on pointers themselves, and happens in multiples of the base size.
But if you convert them to integers first -- integers, not pointers to integers -- the compiler is no longer aware of any base size and does just plain arithmetic.
Try this:
This makes it more obvious what's going on.
When you do math on a pointer, it puts it in terms of it's base size. An integer pointer plus one, actually gets sizeof(int) added to it, in this case 4. For plain integers, it makes no adjustment.
Last edited by Corona688; 01-14-2011 at 06:44 PM..
Hi all,
Can anyone tell me a little about the datatype FILE, which represents stream. What does its structure look like, and in which header file is it defined and so on...
Ex :
FILE *fp ;
fp = fopen("filename", "w") ; (6 Replies)
I am writing some code to do analysis on the file system (HP-UX 11.11).
I am using stat(..) to get file information. My problem is that the file-size may exceed the data types defined in 'sys/stat.h' & 'sys/types.h' respectively.
Thus file-sizes in the Giga-byte range are not read correctly.... (2 Replies)
Hello,
I get this message : "Value too large to be stored in data type" when I try to open a 3Gb file.
Can someone helps me to resolve the problem.
Thank you very much (5 Replies)
I have seen it done at my job before, there is a command that will make a notepad and show the directorie path, subfolders, and size of the subfolders? But i dont want it to go lower than 2 levels for example:
folder_01 10 GB
subfolder_02 10 GB
subfolder_03 10 GB... (4 Replies)
I am using perl 5.8.0.
I need to check some values to see it they are floats. Our system does not have Data::Types so I can't use is_float. Is there something else that I can use? The only thing in Data is Dump.pm. I am not allowed to download anything to our system so I have to use what I have.... (3 Replies)
Dear All,
How internally memory allocated when we declare the float data type.
how many bytes allocated for decimal and how many bytes for fraction.
kindly help me in this regards. (2 Replies)
I'm not a unix guy so excuses my ignorance... I'm the database ETL guy.
I'm trying to be proactive and devise a plan B for a ETL process where I expect a file 10X larger than what I process daily for a recast job. The ETL may handle it but I just don't know.
This file may need to be split... (3 Replies)
Hi everybody,
I`m very new with PHP and Databases and I having the follow issue with prices data..
The original information is in CSV files.
The prices have formatted with commas and dots as follow:
12,300.99 -->(thousands separated by commas)
3,500.25 -->(thousands separated... (10 Replies)
This is from a program I wrote over in 1998 that I am trying to compile on a linux machine:
void write_line (FILE *fp, int rec_no, line_rec *arec)
{
fpos_t woffset;
woffset = (rec_no - 1) * sizeof(line_rec);
fsetpos(fp,&woffset);
fwrite(arec,sizeof(line_rec),1,fp);
}On the line... (2 Replies)
Discussion started by: wbport
2 Replies
LEARN ABOUT HPUX
ultoa_r
ltostr(3C)ltostr(3C)NAME
ltostr(), ultostr(), ltoa(), ultoa() - convert long integers to strings
SYNOPSIS
Obsolescent Interfaces
DESCRIPTION
Convert a signed long integer to the corresponding string
representation in the specified base. The argument base must be between 2 and 36, inclusive.
Convert an unsigned long integer to the corresponding string
representation in the specified base. The argument base must be between 2 and 36, inclusive.
Convert a signed long integer to the corresponding base 10
string representation, returning a pointer to the result.
Convert an unsigned long integer to the corresponding base 10
string representation, returning a pointer to the result.
These functions are smaller and faster than using for simple conversions (see printf(3S)).
Obsolescent Interfaces
convert long integers to strings.
ERRORS
If the value of base is not between 2 and 36, and return NULL and set the external variable to ERANGE.
WARNINGS
The return values for and point to data whose content is overwritten by subsequent calls to these functions by the same thread.
and are obsolescent interface supported only for compatibility with existing DCE applications. New multi-threaded applications should use
and
AUTHOR
and were developed by HP.
SEE ALSO strtol(3C), printf(3S), thread_safety(5).
ltostr(3C)