关于指针的书问题

共有 1871 人关注过本帖
标题:关于static和指针的问题
等 级:新手上路
帖 子:22
结帖率:70%
&&已结贴√
&&问题点数:10&&回复次数:10&&&
关于static和指针的问题
#include &stdio.h&
#include &string.h&
void main()
&&& static char s1[3][20];
&&& static char *p[3]={s1[0],s1[1],s1[2]};\\\\要是没有STATIC就运行不了,求讲解,我刚学到指针。程序其他一切正常。
&&& int i,k,j;
&&& char *
&&& printf(&please input three strings:\n&);
&&& for(i=0;i&3;i++)
&&&&&&&&scanf(&%s&,p[i]);
&&& printf(&the string is:\n&);
&&& for(i=0;i&3;i++)
&&&&&&&&puts(p[i]);
&&& for(i=0;i&2;i++)
&&&&&&&&k=i;
&&&&&&&&for(j=1;j&3;j++)
&&&&&&&&&&&&{
&&&&&&&&&&&&&&& if(strcmp(p[k],p[j])&0)
&&&&&&&&&&&&&&& {
&&&&&&&&&&&&&&&&&&&&temp=p[j];
&&&&&&&&&&&&&&&&&&&&p[j]=p[k];
&&&&&&&&&&&&&&&&&&&&p[k]=
&&&&&&&&&&&&&&& }
&&&&&&&&&&&&}
&&& printf(&the new string is:\n&);
&&& for(i=0;i&3;i++)
&&&&&&&&puts(p[i]);
&&& getch();
搜索更多相关主题的帖子:
等 级:蜘蛛侠
帖 子:486
专家分:1185
指针数组没有初始化的部分出问题,用了static&&char *p[3]={s1[0],s1[1],s1[2]};即 其余部分初始化为0
免费赠送河蟹一只
等 级:青峰侠
帖 子:687
专家分:1570
没有static 可以运行的呀。
来 自:恍惚窈冥
等 级:城市猎人
帖 子:1543
专家分:5367
static用在main里没什么意义吧!~
善人者,不善人之师;不善人者,善人之资。不贵其师,不爱其资,虽智大迷。
等 级:业余侠客
帖 子:326
专家分:286
确实,楼上说的都对,static用在main函数里面 无意义
我是初学者
等 级:论坛游民
帖 子:48
专家分:71
回复 5楼 xzy199999
static在main里是局部静态变量吧&&怎么能没有意义呢
等 级:新手上路
帖 子:22
回复 3楼 刘定邦
TC2.0确实不行
等 级:新手上路
帖 子:22
回复 2楼 pcbaichi
可以再解释下吗?
等 级:青峰侠
帖 子:938
专家分:1756
在char s1[3][20]定义的时候如果没有static的话会出错,至于char *p[3]={s1[0],s1[1],s1[2]}有与没有static都是可以的!这是因为p[3]是一个存放指针的数组,如果s1这个数组没有加static或者没有进行初始化而直接赋值给p的话,就会出现错误!
愿用余生致力编程
等 级:新手上路
帖 子:22
回复 9楼 我菜119
你好,谢谢你的解答,但是我还是不明白。
P[3]指向的是S1的每行的首地址,跟它赋值与否没关系啊。
版权所有,并保留所有权利。
Powered by , Processed in 0.027791 second(s), 8 queries.
Copyright&, BCCN.NET, All Rights ReservedThe page is temporarily unavailable
nginx error!
The page you are looking for is temporarily unavailable.
Please try again later.
Website Administrator
Something has triggered an error on your
This is the default error page for
nginx that is distributed with
It is located
/usr/share/nginx/html/50x.html
You should customize this error page for your own
site or edit the error_page directive in
the nginx configuration file
/etc/nginx/nginx.conf.c++ *指针 即取指针指向内容时遇到的奇怪有关问题 - C++当前位置:& &&&c++ *指针 即取指针指向内容时遇到的奇怪有关问题c++ *指针 即取指针指向内容时遇到的奇怪有关问题&&网友分享于:&&浏览:51次c++ *指针 即取指针指向内容时遇到的奇怪问题在做A*寻路算法
path是Position2D_ASTAR*型的栈,删除栈顶元素到临时Position2D_ASTAR*&temp。我想打印*temp即栈顶指向的东西,然后打印这个东西。
while&(!Path.IsEmpty())
Position2D_ASTAR*&
Path.Delete(temp);
cout&&重载Position2D_ASTAR的父类Position2D的友元输出函数为:
ostream&&operator&&(ostream&&out,Position2D&&p)
out&&"("&&p.row&&","&&p.col&&")";
把断点设在out&&"("&&p.row&&","&&p.col&&")";
奇怪的事情发生了,p.row,p.col都对,说明*temp的指向应该没错,但出现了错误:0x处有未经处理的异常:0xC:Access&violation
停在了这里:
_OutIt&__CLR_OR_THIS_CALL&put(_OutIt&_Dest,
ios_base&&_Iosbase,&_Elem&_Fill,&long&_Val)&const
{ //&put&formatted&long&to&_Dest
return&(do_put(_Dest,&_Iosbase,&_Fill,&_Val));
}但是正是运行的时候ctrl+F5就不会出现这个,但在后边有问题,估计也和这个有关,请问大神是怎么回事?
------解决方案--------------------崩溃的时候在弹出的对话框按相应按钮进入调试,按Alt+7键查看Call&Stack里面从上到下列出的对应从里层到外层的函数调用历史。双击某一行可将光标定位到此次调用的源代码或汇编指令处。
判断是否越界访问,可以在数组的最后一个元素之后对应的地址处设置数据读写断点。如果该地址对应其它变量干扰判断,可将数组多声明一个元素,并设置数据读写断点在该多出元素对应的地址上。------解决方案--------------------应该是cout&&*&有问题了&你可以把这句在之前打印&或者屏蔽掉&会不会Crash------解决方案--------------------while&(!Path.IsEmpty())
&&&&&&&&Position2D_ASTAR*&temp=Path.top();假设该栈实现了这个函数
&&&&&&&&cout&&*
&&&&&&&&Path.Delete(temp);//这个会不会已经释放内存了
12345678910
12345678910
12345678910 上一篇:下一篇:文章评论相关解决方案 12345678910 Copyright & &&版权所有}

我要回帖

更多关于 鼠标指针 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信