問題在哪裏?當運行時,應用程序崩潰...C - 運行此應用程序時崩潰
#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;
}
問題在哪裏?當運行時,應用程序崩潰...C - 運行此應用程序時崩潰
#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;
}
您要修改字符串常量存儲在只讀存儲器ADRESS,因爲char* x = "xD";
聲明一個指針類型的數據。相反,使用這個char x [] = "xD";
,那不是一個指針,它是一個你可以修改的數組,因爲它存儲在堆棧中。或者如果你想使用一個指針,你需要爲它分配內存。
它在該行崩潰(*x)++;
因爲x
指向一個只讀存儲器,由於定義char* x = "xD";
。
將其更改爲char x[] = "xD";
。所以x
是一個數組,it's值可以改變
請給出更多細節。它如何崩潰?執行此代碼時會發生什麼?你想要做什麼? – kjaquier
您已更改字符串文字。 – BLUEPIXY
在C中搜索字符串文字... – mafso