#include<stdio.h>
#include<string.h>
#include<stdlib.h>
typedef struct Pet{
char * name;
int legs;
char * color;
} pet;
void writedata( pet * Pet, char string[ ] , const char field[ ] ) {
Pet
-> field
= ( char * ) malloc ( strlen ( string
) + 1 ) ; //I wanted it to be treated like Pet->name }
void addpet( pet* Pet, int & TotalLegs) {
char string[ 50 ] ;
char string2[ 50 ] ;
writedata( Pet, string, name) ; //the actual attempt
/*gets(string);
Pet->name = (char*)malloc(strlen(string)+1);
strcpy(Pet->name, string);*/
puts ( "How many legs?\n " ) ; puts ( "What does it say?\n " ) ; TotalLegs += Pet-> legs;
}
void main( ) {
int TotalLegs = 0 ;
pet
* Pet1
= ( pet
* ) malloc ( sizeof ( pet
) ) ; addpet( Pet1, TotalLegs) ;
pet
* Pet2
= ( pet
* ) malloc ( sizeof ( pet
) ) ; addpet( Pet2, TotalLegs) ;
pet
* Pet3
= ( pet
* ) malloc ( sizeof ( pet
) ) ; addpet( Pet3, TotalLegs) ;
printf ( "The animals have %d legs\n " , TotalLegs
) ; }
I2luY2x1ZGU8c3RkaW8uaD4KI2luY2x1ZGU8c3RyaW5nLmg+CiNpbmNsdWRlPHN0ZGxpYi5oPgp0eXBlZGVmIHN0cnVjdCBQZXR7CgljaGFyKiBuYW1lOwoJaW50IGxlZ3M7CgljaGFyKiBjb2xvcjsKfSBwZXQ7CnZvaWQgd3JpdGVkYXRhKHBldCAqUGV0LCBjaGFyIHN0cmluZ1tdLCBjb25zdCBjaGFyIGZpZWxkW10pewogICAgZ2V0cyhzdHJpbmcpOwogICAgUGV0LT5maWVsZD0gKGNoYXIqKW1hbGxvYyhzdHJsZW4oc3RyaW5nKSsxKTsvL0kgd2FudGVkIGl0IHRvIGJlIHRyZWF0ZWQgbGlrZSBQZXQtPm5hbWUKICAgIHN0cmNweShQZXQtPmZpZWxkLCBzdHJpbmcpOwp9CnZvaWQgYWRkcGV0KHBldCogUGV0LCBpbnQgJlRvdGFsTGVncyl7CgljaGFyIHN0cmluZ1s1MF07CgljaGFyIHN0cmluZzJbNTBdOwoJcHV0cygiSW5wdXQgbmFtZVxuIik7Cgl3cml0ZWRhdGEoUGV0LCBzdHJpbmcsIG5hbWUpOy8vdGhlIGFjdHVhbCBhdHRlbXB0CgkvKmdldHMoc3RyaW5nKTsKCVBldC0+bmFtZSA9IChjaGFyKiltYWxsb2Moc3RybGVuKHN0cmluZykrMSk7CglzdHJjcHkoUGV0LT5uYW1lLCBzdHJpbmcpOyovCglwdXRzKCJIb3cgbWFueSBsZWdzP1xuIik7CglzY2FuZigiJWQiLCAmUGV0LT5sZWdzKTsKCWZmbHVzaChzdGRpbik7CglwdXRzKCJXaGF0IGRvZXMgaXQgc2F5P1xuIik7CglnZXRzKHN0cmluZzIpOwoJUGV0LT5jb2xvciA9IChjaGFyKiltYWxsb2Moc3RybGVuKHN0cmluZykrMSk7CglzdHJjcHkoUGV0LT52b2ljZSwgc3RyaW5nMik7CglwdXRzKCJfX19fX1xuIik7CglUb3RhbExlZ3MgKz0gUGV0LT5sZWdzOwp9CnZvaWQgbWFpbigpewoJaW50IFRvdGFsTGVncyA9IDA7CglwZXQqIFBldDEgID0gKHBldCopbWFsbG9jKHNpemVvZihwZXQpKTsKCWFkZHBldChQZXQxLCBUb3RhbExlZ3MpOwoJcGV0KiBQZXQyID0gKHBldCopbWFsbG9jKHNpemVvZihwZXQpKTsKCWFkZHBldChQZXQyLCBUb3RhbExlZ3MpOwoJcGV0KiBQZXQzID0gKHBldCopbWFsbG9jKHNpemVvZihwZXQpKTsKCWFkZHBldChQZXQzLCBUb3RhbExlZ3MpOwoJcHJpbnRmKCJUaGUgYW5pbWFscyBoYXZlICVkIGxlZ3NcbiIsIFRvdGFsTGVncyk7Cn0KCQo=
compilation info
prog.c: In function ‘writedata’:
prog.c:10:5: warning: ‘gets’ is deprecated (declared at /usr/include/stdio.h:638) [-Wdeprecated-declarations]
gets(string);
^
prog.c:11:8: error: ‘pet’ has no member named ‘field’
Pet->field= (char*)malloc(strlen(string)+1);//I wanted it to be treated like Pet->name
^
prog.c:12:15: error: ‘pet’ has no member named ‘field’
strcpy(Pet->field, string);
^
prog.c: At top level:
prog.c:14:27: error: expected ‘;’, ‘,’ or ‘)’ before ‘&’ token
void addpet(pet* Pet, int &TotalLegs){
^
prog.c:32:6: warning: return type of ‘main’ is not ‘int’ [-Wmain]
void main(){
^
prog.c: In function ‘main’:
prog.c:35:2: warning: implicit declaration of function ‘addpet’ [-Wimplicit-function-declaration]
addpet(Pet1, TotalLegs);
^
stdout