相关疑难解决方法(0)

为什么在写入用"char*s"而不是"char s []"初始化的字符串时会出现分段错误?

以下代码在第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测试.

c c-strings segmentation-fault

277
推荐指数
10
解决办法
7万
查看次数

C/C++ Char指针崩溃

假设一个函数返回一个固定的"随机文本"字符串就像

char *Function1()
{ 
return “Some text”;
}
Run Code Online (Sandbox Code Playgroud)

如果它意外地试图改变价值,程序可能会崩溃

Function1()[1]=’a’;
Run Code Online (Sandbox Code Playgroud)

函数调用尝试执行此操作后的方括号会导致程序崩溃吗?如果您对此熟悉,我们将非常感谢您的解释!

c c++ crash pointers

4
推荐指数
1
解决办法
1575
查看次数

为什么此代码会产生分段错误?

在第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)

我写这个算法来反转一个字符串.

c

-3
推荐指数
1
解决办法
73
查看次数

标签 统计

c ×3

c++ ×1

c-strings ×1

crash ×1

pointers ×1

segmentation-fault ×1