读书人

一个动态分配有关问题

发布时间: 2012-02-15 12:09:44 作者: rapoo

一个动态分配问题
/*目标是动态分配一个二维数组,然后读一行字符,最后打印出来*/
#include <stdio.h>
#include <stdlib.h>
#define LEN 30
int main()
{
char **pt;
int i;

pt = (char **)malloc( sizeof(char)*LEN*LEN );
for(i=0; i <LEN; i++)
{
printf( "Please input a string: ");
scanf( "%s ",pt[i]);
printf( "the string is %s\n ",pt[i]);
}
free(pt);
return 0;
}

错误:每次打印出来是空,没有内容
刚学,请高手帮忙。

[解决办法]
int main()
{
char **pt = NULL;
int i;

pt = new char*[LEN];

//校验内存是否分配成功;

pt[0] = new char[LEN * LEN];

//校验内存是否分配成功;

for (i=0; i < LEN; i++)
{
pt[i] = pt[0] + (i * LEN);
printf( "Please input a string: ");
scanf( "%s ", pt[i]);
printf( "the string is %s\n ",pt[i]);
}

//释放内存

return 0;
}

读书人网 >C语言

热点推荐