void main(void){
string a = strf("apple");
string b = a;
char c[20];
strcpy(c,a);
string d = c;
printf("\na1: %s",a);
printf("\nb1: %s",b);
printf("\nc1: %s",c);
printf("\nd1: %s",d);
int i;
for(i=0;i<100;i++){
strf("banana%d",i);
}
printf("\na2: %s",a);//undefined behavior (bad)
printf("\nb2: %s",b);//undefined behavior (bad)
printf("\nc2: %s",c);//defined behavior (good)
printf("\nd2: %s",d);//defined behavior (good)
}
/*output:
a1: apple
b1: apple
c1: apple
d1: apple
a2: banana99
b2: banana99
c2: apple
d2: apple
*/