关于数组指针的输入和输出
代码如下,为什么会出现如图所示的输出结果{:10_266:}#include <stdio.h>
main()
{
int i;
char n = 'a';
char *id={&n};
for (i=0;i<3;i++)
{
printf("请输入第%d位的姓名:",i+1);
scanf("%s",id+i);
}
for (i=0;i<3;i++)
{
printf("%s\n",id+i);
}
}
对于野指针只能说一切皆有可能啊!,指针数组也没空间就能随便输入了吗
char *id={&n}; // 根本没分配空间 Krant5 发表于 2019-6-11 21:04
对于野指针只能说一切皆有可能啊!,指针数组也没空间就能随便输入了吗
为什么是野指针啊...我不是全初始化过了吗{:10_250:} YiMingC 发表于 2019-6-11 21:12
为什么是野指针啊...我不是全初始化过了吗
指针都是要分配空间的 Krant5 发表于 2019-6-11 21:20
指针都是要分配空间的
不能这样初始化全指向一个东西吗... YiMingC 发表于 2019-6-11 21:23
不能这样初始化全指向一个东西吗...
你只初始化了一个指针而已,全指向一个char的空间(一个字节而已),你输入这么多字符,你觉得合适吗?
另外你可以思考下
char *id={&n};
id+i; //指针到底偏移了多少呢?,这里也是错的 Krant5 发表于 2019-6-11 21:30
你只初始化了一个指针而已,全指向一个char的空间(一个字节而已),你输入这么多字符,你觉得合适吗?
另外 ...
修改了一下
char *id={NULL};
第10行的id+1改成id;
但是运行了好像也是不行{:10_250:} YiMingC 发表于 2019-6-11 21:45
修改了一下
char *id={NULL};
omg, malloc函数与指针好好再学习一下
说了好几次要分配空间了,为什么还是不理解,你随便给指针赋个NULL就是分配空间了吗..........
C语言就这么多东西了,祝成功! 因为没有申请数组长度,看下面的代码#include <stdio.h>
void main()
{
int i;
char c;
char (*id)= c;
for (i=0;i<3;i++)
{
printf("请输入第%d位的姓名:",i+1);
scanf("%s",*(id+i));
}
for (i=0;i<3;i++)
{
printf("%s\n",*(id+i));
}
}
王尧 发表于 2019-6-11 22:00
因为没有申请数组长度,看下面的代码
请问一下用指针数组应该怎么写呢{:10_250:} Krant5 发表于 2019-6-11 21:57
omg, malloc函数与指针好好再学习一下
说了好几次要分配空间了,为什么还是不理解,你随便给指针赋个NULL ...
我还没学到动态内存分配函数,我再琢磨琢磨吧,谢谢啦{:10_250:}
YiMingC 发表于 2019-6-11 22:06
请问一下用指针数组应该怎么写呢
char (*id)= c;
这不就是指针数组吗,id就是c的第一个数组的地址 王尧 发表于 2019-6-11 22:32
char (*id)= c;
这不就是指针数组吗,id就是c的第一个数组的地址
这个是数组指针啊{:10_266:} 本帖最后由 notfornothing 于 2019-6-12 21:10 编辑
楼上那位应该是数组指针吧?
我水平有限:
我用你的代码可以正常输出
直接初始化的时候赋值给id 也能够正常输出
但是这样的话两个程序发现printf 参数 那里好像有点区别。我再研究研究
#include <stdio.h>
#include <string.h>
#include <windows.h>//system??
#include <conio.h>
#include <stdio.h>
main()
{
int i;
char *id[]={"jack",
"tom",
"lucy"};
for (i=0;i<3;i++)
{
printf("%s\n",*(id+i));
}
system("pause");
} notfornothing 发表于 2019-6-12 21:03
楼上那位应该是数组指针吧?
我水平有限:
我用你的代码可以正常输出
好的,麻烦大家了~ YiMingC 发表于 2019-6-13 14:50
好的,麻烦大家了~
你可以参考一下我的帖子,我就这个程序printf参数格式提了问。有大佬说你这个程序有错误。id这个变量会被覆盖掉,好像是作为内存空间来使用的 而不是字符串常亮的地址 notfornothing 发表于 2019-6-14 00:08
你可以参考一下我的帖子,我就这个程序printf参数格式提了问。有大佬说你这个程序有错误。id这个变量会被 ...
好的,感谢~
页:
[1]