以下代码在第2行接收seg错误:
char *str = "string";
str[0] = 'z'; // could be also written as *str = 'z'
printf("%s\n", str);
Run Code Online (Sandbox Code Playgroud)
虽然这非常有效:
char str[] = "string";
str[0] = 'z';
printf("%s\n", str);
Run Code Online (Sandbox Code Playgroud)
经过MSVC和GCC测试.
假设一个函数返回一个固定的"随机文本"字符串就像
char *Function1()
{
return “Some text”;
}
Run Code Online (Sandbox Code Playgroud)
如果它意外地试图改变价值,程序可能会崩溃
Function1()[1]=’a’;
Run Code Online (Sandbox Code Playgroud)
函数调用尝试执行此操作后的方括号会导致程序崩溃吗?如果您对此熟悉,我们将非常感谢您的解释!
在第18行,我在第一次迭代(i = 0)中得到一个seg错误.
#include <stdio.h>
int main(void) {
char* str = "mono";
int length = 0;
int i;
for (i = 0; ; i++) {
if (str[i] == '\0') {
break;
} else {
length++;
}
}
for (i = 0; i < length / 2; i++) {
char temp = str[length - i - 1];
str[length - i - 1] = str[i]; // line 18
str[i] = temp;
}
printf("%s", str);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
我写这个算法来反转一个字符串.