Static version
Code:
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
struct audio
{
int v1;
char szline[14];
};
struct audio foo(void); // protoype
int main(int argc, char **argv)
{
struct audio p;
p = foo();
printf("v1: %d\n", p.v1);
printf("szline: %s\n", p.szline);
}
struct audio foo(void)
{
static struct audio ad;
strcpy(ad.szline, "static string");
ad.v1 = 56;
return ad;
}
Dynamic version:
Code:
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
struct audio
{
int v1;
char szline[14];
};
struct audio* foo(void); // protoype
int main(int argc, char **argv)
{
struct audio *p;
p = foo();
printf("v1: %d\n", p->v1);
printf("szline: %s\n", p->szline);
free(p);
}
struct audio* foo(void)
{
static struct audio *ad;
ad = malloc(sizeof(struct audio));
strcpy(ad->szline, "static string");
ad->v1 = 56;
return ad;
}