動態分配內存存儲字符串 輸出問題
#include "stdio.h"
#include "stdlib.h"
#define N 9
int main(int argc, char* argv[])
{
int count,i;
char time1[18];
char timeback1[N];
scanf("%d",&count); //输入行数
char **ptr;
ptr=(char **)malloc(sizeof(char *)*count); //意思是先定义一个有count个char类型的指针的动态数组,裏面存放的是指针
for(i=0;i<count;i++) //分配COUNT个内存
{
ptr[i]=(char *)malloc(sizeof(char)*N);
}
for(i=0;i<count;) //输入count个字符串
{
gets(time1);
if(time1[0]=='\0')//空行则吃掉
continue; ptr[i]=time1;
i++;
}
for(i=0;i<count;i++) //输出字符串
{
puts(ptr[i]);
}
for(i=0;i<count;i++) //释放内存
{
free(ptr[i]);
}
free(ptr);
return 0;
}