C 中的分段错误,在带有 char* 的函数中
Segmentation fault in C, in fuction with a char*
我是C语言新手,不懂为什么我的代码会报错,求大神指教
#include <stdio.h>
#include <ctype.h>
#include <string.h>
#include <stdbool.h>
char* d(char*);
int main(){
char* str = "Google";
d(str);
return 0;
}
char* d(char* str){
int x = 0;
int len = strlen(str);
while (x != len){
if (str[x] == str[x+1]){
str[x] = 0;
str[x+1] = 0;
}
x++;
}
str = '[=10=]';
return str;
}
我需要画一个不重复字母的字段
语句char *s = "Google"
创建了一个字符串文字。大多数编译器将字符串文字存储在内存的 read-only
部分。
试试这个:
int main()
{
// char *str = "Google";
char str[] = "Google";
d(str);
return 0;
}
它应该做你想做的事。
有关详细信息,请参阅 What’s difference between char s[] and char *s in C?。
我是C语言新手,不懂为什么我的代码会报错,求大神指教
#include <stdio.h>
#include <ctype.h>
#include <string.h>
#include <stdbool.h>
char* d(char*);
int main(){
char* str = "Google";
d(str);
return 0;
}
char* d(char* str){
int x = 0;
int len = strlen(str);
while (x != len){
if (str[x] == str[x+1]){
str[x] = 0;
str[x+1] = 0;
}
x++;
}
str = '[=10=]';
return str;
}
我需要画一个不重复字母的字段
语句char *s = "Google"
创建了一个字符串文字。大多数编译器将字符串文字存储在内存的 read-only
部分。
试试这个:
int main()
{
// char *str = "Google";
char str[] = "Google";
d(str);
return 0;
}
它应该做你想做的事。
有关详细信息,请参阅 What’s difference between char s[] and char *s in C?。