char* cDuan[3];
auto int nDuan[4];
sprintf(tempstr2,"%d\0",8888);
for(i=0;i<4;i++)
{
memset(cDuan[i],'0',sizeof(cDuan[i]));
sprintf(cDuan[i],"%s",tempstr2[i]);
nDuan[i]=atoi(cDuan[i]);
}
auto int nDuan[4];
sprintf(tempstr2,"%d\0",8888);
for(i=0;i<4;i++)
{
memset(cDuan[i],'0',sizeof(cDuan[i]));
sprintf(cDuan[i],"%s",tempstr2[i]);
nDuan[i]=atoi(cDuan[i]);
}
memset()
第一个参数是个指针
所以cDuan + i
或者&cDuan[i]
里面存放的是指针, 你在memset它们之前,你分配了内存了么??
char* cDuan[3];
看成了
char cDuan[3];楼主,真抱歉
memset(audiosendbuf, 0, 2576);
这样写,是正确的。char *audiosendbuf=new char[2576];
memset(audiosendbuf, 0, INP_BUFFER_SIZE);这样写,编译是报错的。。 应该怎么改?不改定义,因为这个定义改了的话,程序里其他的地方,都得改 :(
thanks...
memset(a,0,sizeof(a));
//这样写,是正确的。 char* b = new char[100];
memset(b,0,100);
报什莫编译错误啊,我都试了,没错,你把memset中的逗号间隔的空格都去掉试试
auto int nDuan[4];
sprintf(tempstr2,"%d\0",8888);
for(i=0;i<4;i++)
{
memset(cDuan[i],'0',sizeof(cDuan[i]));
sprintf(cDuan[i],"%s",tempstr2[i]);
nDuan[i]=atoi(cDuan[i]);
}
个人认为有两个问题:
1. 数组访问越界cDuan[3];
2. cDuan[3]没有分配内存