00问答网
所有问题
C语言,想给字符型的指针读入字符串(动态内存),应该怎么读?我这个为什么不对?
int i;
char *pName=NULL;
for(i=0;i<10;i++)
{
pName[i]=(char*)malloc(20*sizeof(char));
}
举报该问题
其他回答
第1个回答 2010-11-06
开始的时候,pName = NULL,就是让指针不指向任何地址,你在循环体却还试图使用pName[i](即在pName的地址基础上加i个单元地址(根据指向数据类型而定)),当然错啦! 你要读入字符串不需要循环,一个字符指针就可以读字符串了。
int i;
char *pName = (char*)malloc(20*sizeof(char));
for(i=0;i<10;i++)
{
scanf("%c",pName[i]); //每次读入一个字符
}
第2个回答 2010-11-06
你只定义了一个字符型指针,当然不能接受你开辟10组字符空间的设置啦,
如果希望得到你for循环操作的结果,应该改为:
int i;
char *pName【10】;
for(i=0;i<10;i++)
{
pName[i]=(char*)malloc(20*sizeof(char));
}本回答被提问者采纳
第3个回答 2010-11-06
不需要循环
相似回答
c语言
中
,字符串指针
怎样实现对字符串的读取与存储?
答:
如果直接用指针存个
字符串
:前提是字符串大小不能超过30 - 1;scanf("%s",p);复制可以使用 strcpy(p,"...")等;如果不通过指向字符数组:那么必须要内存分配,用到malloc函数;例如p = (char *)malloc(sizeof(char) *30);
给指针
p分配一个大小30字节
的内存
用来存储字符串;接下来和上面差不多...
c语言
中
为什么c
har *a;
答:
此时,a、b变量本身是独立开的,可区分的,但是他们所指向的内存地址却是一个,这是
C语言的
一个特性,在编译时,会将相同的
字符串
合并起来创建,以此来节省空间,以C为原型的一些
语言,
比如obj-c也保留了这个特性;
c语言
新手上路,求教一下
为什么我这个
输入
字符串
的时候用scanf运行出来...
答:
第一,你说的正确情况应该是gets,而不是get 第二,scanf和gets区别在于,gets输入整行,而scanf遇到空白字符就会停止 所以应该你的输入中有空格一类的需要存入数组的空白
字符,
导致scanf读取非预期 so,确认一下输入是不是有我说的这种情况,如果有,那就用gets吧,挺好用的。没必要一定用scanf(scanf...
怎样将
字符串
赋
给指针
指示的字符串
答:
可以不定义字符数组,而定义一个
字符指针
。用字符指针指向字符串中的字符。[例8.12] void main(void){char *string="I Love China!";printf("%s\n",string);}在这里没有定义字符数组,但
C语言对字符串
常量是按字符数组处理的,实际上在内存开辟了一个字符数组用来存放字符串数组。在程序中定义了一个字符指针...
大家正在搜
字符串赋值给字符指针
字符指针指向字符串
c语言指针指向字符串
c语言指针输入字符串
输出字符指针就是输出字符串
c语言字符串指针
c语言字符和字符串
指针输入字符串
字符串赋值给字符数组
相关问题
C语言为字符指针(char*)分配动态内存空间(malloc...
怎么从键盘输入一个字符串到一个动态分配内存的的字符指针中?
c语言,函数返回字符串,怎样返回,用指针,还有,calloc...
C语言中指针参数申请动态内存?
C语言中几个字符串指针如何分配内存地址
C语言编程一个给字符指针分配内存空间
关于C语言指针读取内存地址的问题,高手请进
C语言编程一个给字符指针分配内存空间