Sponsored Content
Full Discussion: help with data type sizes
Top Forums Programming help with data type sizes Post 302488046 by DGPickett on Friday 14th of January 2011 05:05:13 PM
Old 01-14-2011
Well, & is the address, and it goes up one for every char and usually 4 for every int. Addresses are guaranteed to be subtractable even if they are in odd formats internally. Also, adding integers is the same as offsetting an array, so for array "char c[] = "Hello" ;", c + 5 = &(c[5]) points c[5] = *(c+5) to the null of the "" string after the 'o' of hello.

For int arrays, adding one moves it 4 in char terms, but if you subtract int addresses, you get a result / 4 unless you cast them as (char*) first. So, for "int i[8];", &(i[5]) - &(i[2]) = 3, which turns out to be more useful than 12 unless you are doing i/o or malloc(), which are byte char operations.

If you are doing an array of struct, the struct size is multiplied for you into any increment or offset. You can discover the real size with sizeof() or by casting addresses of two adjacent struct to (char*) and subtracting, a popular interview question some places.

Last edited by DGPickett; 01-14-2011 at 06:12 PM..
 

10 More Discussions You Might Find Interesting

1. Programming

FILE data type

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)
Discussion started by: milhan
6 Replies

2. Programming

time_t data type-- what does start +1 mean?

Hi, I am trying to understand an very old C program. .... time_t start, end; ptr = localtime(&start); ... fprintf(out, "%-35s 01 %5s %2s %10d 1 5 /tty/M%d/%02d %24s", buffer3, job, ver, start, mach_num,atoi(buffer), asctime(ptr)); fprintf(out, "%-35s 03 %5s %2s %10d 1 5... (9 Replies)
Discussion started by: whatisthis
9 Replies

3. Programming

data type limitation

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)
Discussion started by: ALTRUNVRSOFLN
2 Replies

4. AIX

Value too large to be stored in data type???

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)
Discussion started by: limame
5 Replies

5. UNIX for Dummies Questions & Answers

Directorie listing in Human form for data sizes

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)
Discussion started by: JUSSAN007
4 Replies

6. Shell Programming and Scripting

Perl data type checking

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)
Discussion started by: ajgwin
3 Replies

7. UNIX for Advanced & Expert Users

Memory allocation for float data type

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)
Discussion started by: rajamohan
2 Replies

8. Shell Programming and Scripting

Can I split a 10GB file into 1 GB sizes using my repeating data pattern

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)
Discussion started by: john091
3 Replies

9. Web Development

Data type to use for prices with commas

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)
Discussion started by: cgkmal
10 Replies

10. Programming

Incompatible data type fpos_t in C

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
m_getvalues_layout(3LAYOUT)				 Layout Service Library Functions			       m_getvalues_layout(3LAYOUT)

NAME
m_getvalues_layout - query layout values of a LayoutObject SYNOPSIS
cc [ flag... ] file... -llayout [ library... ] #include <sys/layout.h> int m_getvalues_layout(const LayoutObject layout_object, LayoutValues values, int *index_returned); DESCRIPTION
The m_getvalues_layout() function queries the current setting of layout values within a LayoutObject. The layout_object argument specifies a LayoutObject returned by the m_create_layout(3LAYOUT) function. The values argument specifies the list of layout values that are to be queried. Each value element of a LayoutValueRec must point to a location where the layout value is stored. That is, if the layout value is of type T, the argument must be of type T*. The values are queried from the LayoutObject and represent its current state. It is the user's responsibility to manage the space allocation for the layout values queried. If the layout value name has QueryValueSize OR-ed to it, instead of the value of the layout value, only its size is returned. The caller can use this option to determine the amount of memory needed to be allocated for the layout values queried. RETURN VALUES
Upon successful completion, the m_getvalues_layout() function returns 0. If any value cannot be queried, the index of the value causing the error is returned in index_returned, -1 is returned and errno is set to indicate the error. ERRORS
The m_getvalues_layout() function may fail if: EINVAL The layout value specified by index_returned is unknown, its value is invalid, or the layout_object argument is invalid. In the case of an invalid layout_object argument, the value returned in index_returned is -1. ATTRIBUTES
See attributes(5) for descriptions of the following attributes: +-----------------------------+-----------------------------+ | ATTRIBUTE TYPE | ATTRIBUTE VALUE | +-----------------------------+-----------------------------+ |Interface Stability |Standard | +-----------------------------+-----------------------------+ |MT-Level |MT-Safe | +-----------------------------+-----------------------------+ SEE ALSO
m_create_layout(3LAYOUT), attributes(5), standards(5) SunOS 5.11 7 Aug 2006 m_getvalues_layout(3LAYOUT)
All times are GMT -4. The time now is 11:25 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy