一宣言指针就不正常,百思不得其解
一声明指针就不正常,百思不得其解
以下是完整代码,问题见注释
实际上,在注释那一行,不管我声明什么类型的指针,r都是等于0,正常情况下,r应该是等于-1的
------解决方案--------------------
VS2010下,注释了仍然是0
------解决方案--------------------
看下汇编调试内容。
------解决方案--------------------
我用的是VC++6.0,注释不注释结果都是一样的。
------解决方案--------------------
楼主用的是什么编译器啊
以下是完整代码,问题见注释
#include <stdio.h>
#include <cstring>
#include <assert.h>
int strline(char *strDestination, const char *strSource, int *offset)
{
assert(strDestination!=NULL && strSource!=NULL && offset!=NULL);
char c;
memset(strDestination,0,strlen(strDestination));
strSource+=*offset;
if (*strSource=='\0') return -1;
while((c=*strSource++)!='\0' && c!='\n' && c!='\r')
{
*strDestination++ = c;
(*offset)++;
}
(*offset)++;
return 0;
}
int main(int argc, char *argv[])
{
char url[] = "asafddsafsf\r\nadsffa";
char *a = new char[100];
int zero=0;
int *of=&zero,r;
r=strline(a,url,of);
r=strline(a,url,of);
r=strline(a,url,of);
r=strline(a,url,of);
if(r==-1){
printf("OK\n");
}
printf("%d %d %s",r, *of, a);
//char *iP=NULL; //注释这行就正确,r=-1,不注释就不正确,r=0
delete a;
return 0;
}
实际上,在注释那一行,不管我声明什么类型的指针,r都是等于0,正常情况下,r应该是等于-1的
------解决方案--------------------
VS2010下,注释了仍然是0
------解决方案--------------------
看下汇编调试内容。
------解决方案--------------------
我用的是VC++6.0,注释不注释结果都是一样的。
------解决方案--------------------
楼主用的是什么编译器啊