C - 运行此应用程序时崩溃

时间:2014-07-05 13:56:41

标签: c string pointers crash char

问题出在哪里?运行时,应用程序崩溃......

#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;
}

2 个答案:

答案 0 :(得分:2)

您正在尝试修改存储在只读内存地址中的字符串文字,因为char* x = "xD";声明了指向该类数据的指针。使用此char x [] = "xD";而不是指针,是一个允许修改的数组,因为它存储在堆栈中。或者如果你想使用指针,你需要为它分配内存。

答案 1 :(得分:1)

它在行(*x)++;中崩溃,因为x由于定义char* x = "xD";而指向只读内存。

将其更改为char x[] = "xD";。所以x是一个数组,它的值可以改变