Microsoft KB Archive/149753

= How to Determine the Size of a User-Defined Data Type =

PSS ID Number: 149753

Article Last Modified on 11/3/1999

-

The information in this article applies to:


 * Microsoft Fortran PowerStation for Windows 95 and Windows NT 4.0

-



This article was previously published under Q149753



SUMMARY
The Fortran Run-Time Library included with Microsoft Fortran PowerStation version 4.0 does not include an intrinsic function or subroutine that can return the number of bytes in use by a single user-defined data type variable. You can, however, use the LOC intrinsic function to obtain the starting addresses of two user-defined data type variables, contiguous in memory, and subtract their addresses resulting in the number of bytes used by one variable of this type.



MORE INFORMATION
Do the following to calculate the number of bytes in use by a single user- defined data type variable:


 * 1) Create a two-element array variable of any user-defined data type.
 * 2) Use the LOC intrinsic function to obtain the starting memory addresses for both user-defined data type array elements.
 * 3) Subtract these addresses from each other. This will yield the number of bytes used in memory by this type of user-defined variable.

Sample Code to Illustrate Technique
C Compile options needed: none type udt integer a         real b      end type type (udt) myt(2) print *, 'Number of bytes used: ', loc(myt(2)) - loc(myt(1)) end

Program Output
Number of bytes used: 8

Additional query words: 4.00 kbinf

Keywords: kbcode kbLangFortran KB149753

Technology: kbAudDeveloper kbFORTRANPower400NT kbFortranSearch kbZNotKeyword8

-

[mailto:TECHNET@MICROSOFT.COM Send feedback to Microsoft]

© 2004 Microsoft Corporation. All rights reserved.