/usr/share/doc/libcnf-dev/html/node39.html is in libcnf-dev 4.0-2.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 | <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<!--Converted with LaTeX2HTML 98.2 beta6 (August 14th, 1998)
original version by: Nikos Drakos, CBLU, University of Leeds
* revised and updated by: Marcus Hennecke, Ross Moore, Herb Swan
* with significant contributions from:
Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
<HTML>
<HEAD>
<TITLE>Arrays of pointer to char</TITLE>
<META NAME="description" CONTENT="Arrays of pointer to char">
<META NAME="keywords" CONTENT="sun209">
<META NAME="resource-type" CONTENT="document">
<META NAME="distribution" CONTENT="global">
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
<LINK REL="STYLESHEET" HREF="sun209.css">
<LINK REL="next" HREF="node40.html">
<LINK REL="previous" HREF="node38.html">
<LINK REL="up" HREF="node37.html">
<LINK REL="next" HREF="node40.html">
</HEAD>
<BODY >
<BR> <HR>
<A NAME="tex2html608"
HREF="node40.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next_motif.gif"></A>
<A NAME="tex2html606"
HREF="node37.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up_motif.gif"></A>
<A NAME="tex2html600"
HREF="node38.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="previous_motif.gif"></A> <A HREF="sun209.html#stardoccontents"><IMG
ALIGN="BOTTOM" BORDER="0" SRC="contents_motif.gif"
ALT="252"></A>
<BR>
<B> Next:</B> <A NAME="tex2html609"
HREF="node40.html">POINTER Arrays</A>
<BR>
<B>Up:</B> <A NAME="tex2html607"
HREF="node37.html">More on Arrays</A>
<BR>
<B> Previous:</B> <A NAME="tex2html601"
HREF="node38.html">CHARACTER and LOGICAL Arrays</A>
<BR> <HR> <P>
<!--End of Navigation Panel-->
<H2><A NAME="SECTION000102000000000000000"></A><A NAME="xref_arrays_of_pointer_to_char"></A><A NAME="char_ptrs"></A>
<BR>
Arrays of <TT>pointer to char</TT>
</H2>
In C, arrays of character strings are often held as arrays of
<TT>pointer to char</TT>.
This allows strings of varying length and not necessarily in contiguous
memory.
CNF functions
<A HREF="node180.html#cnfImprtap"><TT>cnfImprtap</TT></A>
and
<A HREF="node169.html#cnfExprtap"><TT>cnfExprtap</TT></A>
can be used to import/export arrays of pointer to char from/to
FORTRAN <TT>CHARACTER</TT> arrays.
The following example shows how to do this. The FORTRAN subroutine, PRARR,
prints the given <TT>CHARACTER</TT> array and returns it set to blank strings.
The C program prints the strings before and after the call to PRARR.
<P>
<A NAME="cook_exprtap"></A>
<DIV ALIGN="CENTER">
Example
- IMPORT/EXPORT with arrays of pointers to char.
</DIV>
<FONT SIZE="-1"><BLOCKQUOTE> </FONT><PRE>
rlsaxp_101% more temp.c
#include "f77.h"
F77_SUBROUTINE(prarr)(CHARACTER_ARRAY(arr) TRAIL(arr));
main() {
DECLARE_CHARACTER_ARRAY(arr,12,3);
char *ptr[3]={"ajc","hello there","TEXT"};
int dims[1]=3;
int i;
for (i=0;i<3;i++) printf("%d:%s:\n",i,ptr[i]);
cnfExprtap(ptr,arr[0],12,1,dims);
F77_CALL(prarr)(CHARACTER_ARRAY_ARG(arr) TRAIL_ARG(arr));
cnfImprtap(arr[0],12,ptr,1,1,dims);
for(i=0;i<3;i++) printf("%d:%s:\n",i,ptr[i]);
}
</PRE><FONT SIZE="-1"> </BLOCKQUOTE></FONT>
<FONT SIZE="-1"><BLOCKQUOTE> </FONT><PRE>
SUBROUTINE PRARR( ARR )
CHARACTER*(*) ARR(3)
INTEGER I
DO 10
PRINT *, ':', ARR(I), ':'
ARR( I ) = ' '
10 CONTINUE
END
</PRE><FONT SIZE="-1"> </BLOCKQUOTE></FONT>
<P>
<BR> <HR>
<A NAME="tex2html608"
HREF="node40.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next_motif.gif"></A>
<A NAME="tex2html606"
HREF="node37.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up_motif.gif"></A>
<A NAME="tex2html600"
HREF="node38.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="previous_motif.gif"></A> <A HREF="sun209.html#stardoccontents"><IMG
ALIGN="BOTTOM" BORDER="0" SRC="contents_motif.gif"
ALT="252"></A>
<BR>
<B> Next:</B> <A NAME="tex2html609"
HREF="node40.html">POINTER Arrays</A>
<BR>
<B>Up:</B> <A NAME="tex2html607"
HREF="node37.html">More on Arrays</A>
<BR>
<B> Previous:</B> <A NAME="tex2html601"
HREF="node38.html">CHARACTER and LOGICAL Arrays</A>
<BR> <HR> <P>
<!--End of Navigation Panel-->
<ADDRESS>
<I>CNF and F77 Mixed Language Programming -- FORTRAN and C<BR>Starlink User Note 209<BR>P.M. Allan<BR>A.J. Chipperfield<BR>R.F. Warren-Smith<BR>19 January 2000<BR>E-mail:<A HREF="mailto:ussc@star.rl.ac.uk">ussc@star.rl.ac.uk</A></I>
</ADDRESS>
</BODY>
</HTML>
|