Tennis.h
struct TennisGround
{
int num;
char *agentName;
};
typedef struct TennisGround TG;
void mallocTG(TG *total);
void freeTG(TG *total);
Tennis.c
#include <stdio.h>
#include <stdlib.h>
#include <malloc.h>
#include <string.h>
#include "Tennis.h"
void mallocTG( TG *total )
{
int size, start, count = 0;
char *agentName = (char *) malloc( sizeof(char) * 10 );
printf( "Please input your agentName:" );
scanf( "%s", agentName );
printf( "Please input the size of the TennisGround:" );
scanf( "%d", &size );
printf( "Please input the TennisGround number you want to start:" );
scanf( "%d", &start );
if ( (total + start)->agentName != " " )
{
printf( "malloc failed!\n" );
exit( -1 );
}else {
while ( count < size )
{
(total + start + count)->agentName = agentName;
count++;
}
}
}
void freeTG( TG* total )
{
char *an = (char *) malloc( sizeof(char) * 10 );
printf( "please input agentName you want to free:" );
scanf( "%s", an );
int count = 0;
while ( count < 100 )
{
if ( strcmp( (total + count)->agentName, an ) == 0 )
(total + count)->agentName = " ";
count++;
}
}
int main()
{
int i;
int sw;
TG *total = (TG *) malloc( sizeof(TG) * 100 );
for ( i = 0; i < 100; i++ )
{
(total + i)->num = i;
(total + i)->agentName = " ";
}
while ( 1 )
{
printf( "*******Tennis Ground Mallocation******************\n" );
for ( i = 0; i < 100; i++ )
{
printf( "%d(%s) ", (total + i)->num, (total + i)->agentName );
if ( i % 5 == 0 )
printf( "\n" );
}
printf( "\n" );
printf( "**************************************************\n" );
printf( "Please input your choosen:(1-malloc,2-free):" );
scanf( "%d", &sw );
if ( sw == 1 )
mallocTG( total );
else
freeTG( total );
}
}