为什么它给我分段错误?

时间:2021-02-13 09:32:30

标签: c

这是代码:

#include <stdio.h>

#include <string.h>

int main()
{
      
char C1[6] = "Hello";

  char* C2 = C1;

  char C21 = C1[1];


  printf("\n\nC2 in String : %s\n", C2+1 );

  printf("\n\nC2 address : %d\n", C2+1);

  printf("\n example de C2+1 : %s", C21);

}

这是输出

字符串中的 C2 : hello

C2 地址:6422273

分段错误

1 个答案:

答案 0 :(得分:1)

您将 C21 声明为字符而非字符指针。要么将声明更改为:

char * C21 = &C1[1];

或者在第三个 printf 中将 %s 更改为 %c。

如果你在编译器上打开警告,就会给你一条消息,让你自己解决这个问题。如果您使用 gcc,所有 -Wall 到您的命令行。

相关问题