问题出在哪里?运行时,应用程序崩溃......
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
void test(char* x) {
(*x)++;
}
int main() {
char* x = "xD";
test(x);
puts(x);
getch();
return 0;
}
答案 0 :(得分:2)
您正在尝试修改存储在只读内存地址中的字符串文字,因为char* x = "xD";
声明了指向该类数据的指针。使用此char x [] = "xD";
而不是指针,是一个允许修改的数组,因为它存储在堆栈中。或者如果你想使用指针,你需要为它分配内存。
答案 1 :(得分:1)
它在行(*x)++;
中崩溃,因为x
由于定义char* x = "xD";
而指向只读内存。
将其更改为char x[] = "xD";
。所以x
是一个数组,它的值可以改变