#include <stdio.h>
#include <stdlib.h>
typedef struct {
char * name;
} Player;
int main(void) {
char * name;
char * pname;
Player * player;
name = "FIRST LAST";
// initialize player
player
= (Player
*)malloc(sizeof(Player
)); player->name = name;
pname = player->name;
// print information about the variables
printf("Printing Initial Variable Information:\n"); printf("--------------------------------------\n"); printf("Location: `%p'\n", &name
); printf(" Value: `%p'\n", *name
); printf("Dref Val: `%s'\n", name
);
printf("Location: `%p'\n", &pname
); printf(" Value: `%p'\n", *pname
); printf("Dref Val: `%s'\n", pname
);
printf("Variable: player->name\n"); printf("Location: `%p'\n", &(player
->name
)); printf(" Value: `%p'\n", *(player
->name
)); printf("Dref Val: `%s'\n", player
->name
);
// see what *(pname++) is doing
printf("Checking what *(pname++) does:\n"); printf("------------------------------\n"); printf("Location: `%p'\n", &pname
); printf(" Value: `%p'\n", *pname
); printf("Dref Val: `%s'\n", pname
);
*(pname++);
printf("Location: `%p'\n", &pname
); printf(" Value: `%p'\n", *pname
); printf("Dref Val: `%s'\n", pname
);
// see what *(player->name++) is doing
printf("Checking what *(player->name++) does:\n"); printf("-------------------------------------\n"); printf("Variable: player->name\n"); printf("Location: `%p'\n", &(player
->name
)); printf(" Value: `%p'\n", *(player
->name
)); printf("Dref Val: `%s'\n", player
->name
);
*(player->name++);
printf("Variable: player->name\n"); printf("Location: `%p'\n", &(player
->name
)); printf(" Value: `%p'\n", *(player
->name
)); printf("Dref Val: `%s'\n", player
->name
);
// see results
printf("Printing Resulting Variable Information:\n"); printf("----------------------------------------\n"); printf("Location: `%p'\n", &pname
); printf(" Value: `%p'\n", *pname
); printf("Dref Val: `%s'\n", pname
);
printf("Variable: player->name\n"); printf("Location: `%p'\n", &(player
->name
)); printf(" Value: `%p'\n", *(player
->name
)); printf("Dref Val: `%s'\n", player
->name
);
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdGRsaWIuaD4KCnR5cGVkZWYgc3RydWN0IHsKICBjaGFyICogbmFtZTsKfSBQbGF5ZXI7CgppbnQgbWFpbih2b2lkKSB7CiAgY2hhciAqIG5hbWU7CiAgY2hhciAqIHBuYW1lOwogIFBsYXllciAqIHBsYXllcjsKCiAgbmFtZSA9ICJGSVJTVCBMQVNUIjsKCiAgLy8gaW5pdGlhbGl6ZSBwbGF5ZXIKICBwbGF5ZXIgPSAoUGxheWVyICopbWFsbG9jKHNpemVvZihQbGF5ZXIpKTsKICBwbGF5ZXItPm5hbWUgPSBuYW1lOwoKICBwbmFtZSA9IHBsYXllci0+bmFtZTsKCiAgLy8gcHJpbnQgaW5mb3JtYXRpb24gYWJvdXQgdGhlIHZhcmlhYmxlcwogIHByaW50ZigiUHJpbnRpbmcgSW5pdGlhbCBWYXJpYWJsZSBJbmZvcm1hdGlvbjpcbiIpOwogIHByaW50ZigiLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiIpOwogIHByaW50ZigiVmFyaWFibGU6IG5hbWVcbiIpOwogIHByaW50ZigiTG9jYXRpb246IGAlcCdcbiIsICZuYW1lKTsKICBwcmludGYoIiAgIFZhbHVlOiBgJXAnXG4iLCAqbmFtZSk7CiAgcHJpbnRmKCJEcmVmIFZhbDogYCVzJ1xuIiwgbmFtZSk7CiAgcHJpbnRmKCJcbiIpOwoKICBwcmludGYoIlZhcmlhYmxlOiBwbmFtZVxuIik7CiAgcHJpbnRmKCJMb2NhdGlvbjogYCVwJ1xuIiwgJnBuYW1lKTsKICBwcmludGYoIiAgIFZhbHVlOiBgJXAnXG4iLCAqcG5hbWUpOwogIHByaW50ZigiRHJlZiBWYWw6IGAlcydcbiIsIHBuYW1lKTsKICBwcmludGYoIlxuIik7CgogIHByaW50ZigiVmFyaWFibGU6IHBsYXllci0+bmFtZVxuIik7CiAgcHJpbnRmKCJMb2NhdGlvbjogYCVwJ1xuIiwgJihwbGF5ZXItPm5hbWUpKTsKICBwcmludGYoIiAgIFZhbHVlOiBgJXAnXG4iLCAqKHBsYXllci0+bmFtZSkpOwogIHByaW50ZigiRHJlZiBWYWw6IGAlcydcbiIsIHBsYXllci0+bmFtZSk7CiAgcHJpbnRmKCJcbiIpOwogIAogIC8vIHNlZSB3aGF0ICoocG5hbWUrKykgaXMgZG9pbmcKICBwcmludGYoIkNoZWNraW5nIHdoYXQgKihwbmFtZSsrKSBkb2VzOlxuIik7CiAgcHJpbnRmKCItLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiIpOwogIHByaW50ZigiVmFyaWFibGU6IHBuYW1lXG4iKTsKICBwcmludGYoIkxvY2F0aW9uOiBgJXAnXG4iLCAmcG5hbWUpOwogIHByaW50ZigiICAgVmFsdWU6IGAlcCdcbiIsICpwbmFtZSk7CiAgcHJpbnRmKCJEcmVmIFZhbDogYCVzJ1xuIiwgcG5hbWUpOwogIHByaW50ZigiXG4iKTsKCiAgKihwbmFtZSsrKTsKCiAgcHJpbnRmKCJWYXJpYWJsZTogcG5hbWVcbiIpOwogIHByaW50ZigiTG9jYXRpb246IGAlcCdcbiIsICZwbmFtZSk7CiAgcHJpbnRmKCIgICBWYWx1ZTogYCVwJ1xuIiwgKnBuYW1lKTsKICBwcmludGYoIkRyZWYgVmFsOiBgJXMnXG4iLCBwbmFtZSk7CiAgcHJpbnRmKCJcbiIpOwogIAogIC8vIHNlZSB3aGF0ICoocGxheWVyLT5uYW1lKyspIGlzIGRvaW5nCiAgcHJpbnRmKCJDaGVja2luZyB3aGF0ICoocGxheWVyLT5uYW1lKyspIGRvZXM6XG4iKTsKICBwcmludGYoIi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiIpOwogIHByaW50ZigiVmFyaWFibGU6IHBsYXllci0+bmFtZVxuIik7CiAgcHJpbnRmKCJMb2NhdGlvbjogYCVwJ1xuIiwgJihwbGF5ZXItPm5hbWUpKTsKICBwcmludGYoIiAgIFZhbHVlOiBgJXAnXG4iLCAqKHBsYXllci0+bmFtZSkpOwogIHByaW50ZigiRHJlZiBWYWw6IGAlcydcbiIsIHBsYXllci0+bmFtZSk7CiAgcHJpbnRmKCJcbiIpOwoKICAqKHBsYXllci0+bmFtZSsrKTsKCiAgcHJpbnRmKCJWYXJpYWJsZTogcGxheWVyLT5uYW1lXG4iKTsKICBwcmludGYoIkxvY2F0aW9uOiBgJXAnXG4iLCAmKHBsYXllci0+bmFtZSkpOwogIHByaW50ZigiICAgVmFsdWU6IGAlcCdcbiIsICoocGxheWVyLT5uYW1lKSk7CiAgcHJpbnRmKCJEcmVmIFZhbDogYCVzJ1xuIiwgcGxheWVyLT5uYW1lKTsKICBwcmludGYoIlxuIik7CgogIC8vIHNlZSByZXN1bHRzCiAgcHJpbnRmKCJQcmludGluZyBSZXN1bHRpbmcgVmFyaWFibGUgSW5mb3JtYXRpb246XG4iKTsKICBwcmludGYoIi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiIpOwogIHByaW50ZigiVmFyaWFibGU6IHBuYW1lXG4iKTsKICBwcmludGYoIkxvY2F0aW9uOiBgJXAnXG4iLCAmcG5hbWUpOwogIHByaW50ZigiICAgVmFsdWU6IGAlcCdcbiIsICpwbmFtZSk7CiAgcHJpbnRmKCJEcmVmIFZhbDogYCVzJ1xuIiwgcG5hbWUpOwogIHByaW50ZigiXG4iKTsKCiAgcHJpbnRmKCJWYXJpYWJsZTogcGxheWVyLT5uYW1lXG4iKTsKICBwcmludGYoIkxvY2F0aW9uOiBgJXAnXG4iLCAmKHBsYXllci0+bmFtZSkpOwogIHByaW50ZigiICAgVmFsdWU6IGAlcCdcbiIsICoocGxheWVyLT5uYW1lKSk7CiAgcHJpbnRmKCJEcmVmIFZhbDogYCVzJ1xuIiwgcGxheWVyLT5uYW1lKTsKICBwcmludGYoIlxuIik7CgogIHJldHVybiAwOwp9Cg==