我在debuging时总是收到错误信息,显示“在Utou.exe中0x004113e的未处理异常:0xC0000005:访问冲突写入位置0x00415835”。在“* s - = 32;”行 谁可以帮助解决问题?
#include "stdafx.h"
#include <iostream>
using namespace std;
void ToUpperPtr(char* s)
{
//char *a;
//a=s;
while(*s != '\0')
{
if(*s >='a' && *s <='z')
*s -= 32;
s++; //
}
//printf("%s",a);
}
int _tmain(int argc, _TCHAR* argv[])
{
char *a="AbcdfrDFD";
ToUpperPtr(a);
//printf("%s",a);
int i;
scanf("%d",&i);
return 0;
}
答案 0 :(得分:3)
简单来说,您正在尝试更改一个允许您访问冲突的文字。
char *a="AbcdfrDFD";
相反试试这个..
char a[]="AbcdfrDFD";