![](/images/backgrounds/286549/hp-sunsoft-pascal-4-0-users-manual-549395121x1.png)
6
The C main program,
StrVarMain.c
#include <stdio.h> #include <string.h>
struct TVarLenStr {
int nbytes; char a[25];
};
extern void StrVar(char *, char *, struct TVarLenStr *);
int main(void)
{
struct TVarLenStr vls;
char s10[10], s80[80], s25[25];
vls.nbytes = 0; StrVar(s10, s80, &vls); strncpy(s25, vls.a, vls.nbytes);
printf(" s10 = '%s' \n s80 = '%s' \n s25 = '%s' \n", s10, s80, s25);
printf(" strlen(s25) = %d \n", strlen(s25));
}
The commands to compile and execute StrVar.p and StrVarMain.c
hostname% pc
hostname% cc StrVar.o StrVarMain.c
s10='abcdefghi'
s80='abcdefghijklmnopqrtstuvwxyz'
s25='varstr'
strlen(s25)=6
Fixed ArraysFor a fixed array parameter, pass the same type and size by reference, as shown in the following example:
The | 97 |