C语言输入字符型指针数组怎么输

#include"stdio.h"main(){char*p[10],*temp;inti,j,k;for(i=0;i<10;i++){printf("输入第%d本书的书... #include"stdio.h"
main()
{
char *p[10],*temp;
int i,j,k;
for(i=0;i<10;i++)
{
printf("输入第%d本书的书名\n",i+1);
gets(p[i]);
}
}
运行了结果出错,把gets()改为scanf()也不行,应该怎么输入啊
展开
 我来答
wmcchen
2011-07-11 · TA获得超过495个赞
知道小有建树答主
回答量:64
采纳率:100%
帮助的人:58万
展开全部
#include"stdio.h"
main()
{
char *p[10],*temp;//p[10]是一个字符数组,里面存放的是一个地址而已,所以不能放下你整个书名,即你输入的字符串。你可以把char *p[10]改成p[10][100],这样就有空间存储你输入的字符串了。
int i,j,k;
for(i=0;i<10;i++)
{
printf("输入第%d本书的书名\n",i+1);
gets(p[i]);
}
}
有钱买不起房子
2011-07-11 · TA获得超过4326个赞
知道大有可为答主
回答量:1249
采纳率:100%
帮助的人:2081万
展开全部
*p[10],具有10个字符指针的数组,先要存在具体地址,否则是野指针,发生错误

#include "stdio.h"
#include "stdlib.h"
main()
{
char *p[10],*temp;
int i,j,k;

for(i=0;i<10;i++)
{
p[i]=(char*)malloc(sizeof(char)*50);//开辟内存
}
for(i=0;i<10;i++)
{
printf("输入第%d本书的书名\n",i+1);
gets(p[i]);
}

for(i=0;i<10;i++)
{
printf("%s\n",p[i]);
}
}
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
likexin2b
2011-07-11
知道答主
回答量:3
采纳率:0%
帮助的人:5011
展开全部
没有为指针p分配内存
#include <stdio.h> //printf头文件
#include <string.h> //memset头文件
#include <malloc.h> //malloc头文件
int main()
{
char *p[10];
int i;
for(i=0;i<10;i++)
{
char buf[256];
memset(buf, 0, sizeof(buf)); //初始化内存
printf("输入第%d本书的书名\n",i+1);
gets(buf); //把书名放入缓存
p[i] = (char*)malloc(strlen(buf)+1);//在堆上为指针申请一块内存区域
strncpy(p[i], buf, strlen(buf)+1); //将缓存中的书名拷贝到指针所指的内存区域
}
//测试
for(i=0;i<10;i++){
printf("%s\n",p[i]);
}//测试结束

for(i=0;i<10;i++){
free(p[i]); //避免内存泄露
}
getchar(); //vs下运行时等待按键输入,避免运行结果一闪而过
return 0;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
qinflying
2015-05-17 · 一个低调有内涵的技术人员
qinflying
采纳数:452 获赞数:1416

向TA提问 私信TA
展开全部
char pointerStr[100]
scanf("%s", pointerStr)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
天堂妹儿
2011-07-11 · TA获得超过688个赞
知道小有建树答主
回答量:386
采纳率:0%
帮助的人:278万
展开全部
试试改成这样:
#include"stdio.h"
main()
{
char *p[10],*temp;
int i,j,k;
for(i=0;i<10;i++)
{
printf("输入第%d本书的书名\n",i+1);
gets(p);
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式