我正在使用VISUAL STUDIO 2013的基本指针程序。
#include <stdio.h>
void try1(char *c);
int main()
{
int stop;
char * c = "rotem";
try2(c);
printf_s(" %s \n \n ", c);
scanf_s("%d", &stop);
return 0;
}
void try2(char *c)
{
*c = (char)(*c + 1);
}
然而,我得到这个messege。
Unhandled exception at 0x009F152A in Project32.exe: 0xC0000005: Access violation writing location 0x009F5860.
我应该怎么做?
"rotem"
是一个文字字符串,它在内存中是只读的,你不能修改它。
复制它,或者使用一个数组,因为在你的情况下,你不需要增加它的大小,以取代
char * c = "rotem";
由
char c[] = "rotem";
同时更换
void try1(char *c);
由
void try2(char *c);