#include
#define BUFFER_LEN 100
#define NUM_P 100
void main()
{
char buffer[BUFFER_LEN];
char *pS[NUM_P] = { NULL };
char *pbuffer = buffer;
int i = 0;
int j = 0;
for (i = 0; i < NUM_P; i++)
{
pbuffer = buffer ;
printf("\nEnter %s message, or press Enter to end\n",
i>0? "another" : "a");
while ((pbuffer-buffer < BUFFER_LEN-1) &&
((*pbuffer++ = getchar()) != '\n'));
if((pbuffer - buffer) < 2)
break;
if((pbuffer - buffer) == BUFFER_LEN && *(pbuffer-1)!= '\n')
{
printf("String too long ?maximum %d characters allowed.",
BUFFER_LEN);
i--;
continue;
}
*(pbuffer - 1) = '\0';
pS[i] = (char*)malloc(pbuffer-buffer);
if (pS[i] == NULL)
{
printf("\nOut of memory ?ending program.");
return;
}
for(j = 0 ; (*(pS[i] + j) = buffer[j]) != '\0' ; j++);
}
printf("\nIn reverse order, the strings you entered are:\n");
while (--i >= 0 )
{
printf("\n%s", *(pS + i) );
free(*(pS + i));
*(pS + i) = NULL;
}
}
请各位大虾解释下,小弟无比感谢!