簡體   English   中英

為什么它給我分段錯誤?

[英]Why It's Giving Me Segmentation Fault?

這是代碼:

#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);

}

這是 output

字符串中的 C2:hello

C2地址:6422273

分段故障

您將 C21 聲明為 char 而不是 char 指針。 將聲明更改為:

char * C21 = &C1[1];

否則在第三個 printf 中將 %s 更改為 %c。

如果您在編譯器上打開警告,則會給您一條消息,讓您自己解決這個問題。 如果您使用的是 gcc,則全部 -Wall 到您的命令行。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM