小编Mik*_*son的帖子

分段错误 - 字符指针

在下面的代码中,行:

*end = *front;
Run Code Online (Sandbox Code Playgroud)

给出了分段错误.我在这里问了一个类似的问题,但我不确定这是不是因为我有两份num.请解释为什么它是seg-faulting.谢谢.

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

char* getPalin(char* num);

int main()
{
    char* num = (char*)malloc(100);

    num = "123456";

    printf("%s\n", getPalin(num) );

    return 0;
}

char* getPalin(char* num)
{
    int length = strlen(num);

    if ( length % 2 == 0 )
    {
        char* front = num;
        char* end = num + strlen(num) - 1;  //pointer to end

        while( front != num + (length/2) )  //pointers not middle yet
        {
            *end = …
Run Code Online (Sandbox Code Playgroud)

c segmentation-fault

6
推荐指数
1
解决办法
1万
查看次数

为什么修改字符串的代码不起作用?

对于c样式的字符串,如何将字符指针指向的内存地址赋予char?例如,在下面的示例中,我想将num更改为"123456",因此我尝试将p设置为'0'所在的数字,并尝试用'4'覆盖它.谢谢.

#include <stdio.h>
#include <stdlib.h>

int main()
{
    char* num = (char*)malloc(100);
    char* p = num;

    num = "123056";

    p = p+3;    //set pointer to where '4' should be
    p = '4';

    printf("%s\n", num );

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

c pointers char segmentation-fault access-violation

5
推荐指数
2
解决办法
1万
查看次数

标签 统计

c ×2

segmentation-fault ×2

access-violation ×1

char ×1

pointers ×1