Remember that a boolean variable does not hold a string. It holds a value REPRESENTING true or false. So you can print it be testing the variable with an if/else statement and printing the right string (e.g. either "true" or "false").
See the following:
Code:
#include <stdio.h>
/**
* Define our own boolean data type. The acceptable values
* a variable of this type can hold is true or false. Keep in mind
* that enum's assign values to it's members sequentially (e.g. 0, 1, 2, 3, etc)
* so that in the following, FALSE is 0 and TRUE is 1.
*/
typedef enum bool { FALSE, TRUE } bool;
typedef struct {
char *name;
bool pboolean; /* no need to be a pointer, just holds true/false. */
} mystruct;
int main (int argc, char *argv[])
{
/**
* Create a structure and assign values to it's members.
* The members are name, which is assigned NULL (since it's a pointer),
* and pboolean, a variable representing a true or false value.
*/
mystruct data = { NULL, TRUE };
mystruct *ptr_mystruct;
ptr_mystruct = &data;
ptr_mystruct->name = "me";
printf("The name is: %s\n", ptr_mystruct->name);
printf("The value is: %s\n", (ptr_mystruct->pboolean == TRUE) ? "True" : "False");
return 0;
}