关于C语言中new字符问题

#include<stdio.h>intmain(){intscore[][4]={{59,60,78,23},{78,65,63,54},{89,83,88,90}};... #include<stdio.h>
int main ()
{
int score[][4]={{59,60,78,23},{78,65,63,54},{89,83,88,90}};
int * seach(int(*pi)[4]);
int * p;
int i,j;
for(i=0;i<3;i++)
{
p=seach(score+i);
if(p==*(score+i))
{
printf("--------\n");
for(j=0;j<4;j++)
{
printf("%d ",*(p+j));
}
printf("\n");
}
}
return 0;
}
int * seach(int(*pi)[4])
{
int i=0;
int *pt;
pt=NULL;
for(;i<4;i++)
{
if(*(* pi+i)<60)
pt=*pi;
}
return (pt);
}
"int *pt;"这个是不是要写成"int *pt=new int;"
int *pt这个应该是局部指针变量我看书上说要用到new操作符来分配个持久空间。可在未使用new字符之前编译器并未报错或者出现乱码。 向高手请教······
展开
 我来答
frost0205
2011-06-29 · 超过62用户采纳过TA的回答
知道小有建树答主
回答量:322
采纳率:0%
帮助的人:182万
展开全部
不用,只要在操作*pt前给pt赋值即让pt指向一个合法的地址就好了
指针的关键是要让他指向的空间是有意义的,
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
手机用户08889
2011-06-30 · TA获得超过307个赞
知道答主
回答量:449
采纳率:0%
帮助的人:303万
展开全部
void fun(char *s ,int m )
{
int cnt=0;
while(s[cnt]!=0)
cnt++;
char *p=new char[cnt];
p[cnt-1]=0;
memcpy(p,s,cnt-1);
memcpy(s+cnt-1-m,p,m);
memcpy(s,p+m,cnt-1-m);
}
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式