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()也不行,应该怎么输入啊 展开
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()也不行,应该怎么输入啊 展开
展开全部
*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]);
}
}
#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]);
}
}
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
没有为指针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;
}
#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;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
char pointerStr[100]
scanf("%s", pointerStr)
scanf("%s", pointerStr)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
试试改成这样:
#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);
}
}
#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);
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询