Cでのchar []とchar *の違い

PrithviJC

Cのchar [] sとchar * sの違いは何ですか?どちらもcreate's 'が文字の配列へのポインタであることを理解しています。しかしながら、

char s[] = "hello";
s[3] = 'a';
printf("\n%s\n", s);

プリントhelaoしながら

char * s = "hello";
s[3] = 'a';
printf("\n%s\n", s);

セグメンテーション違反が発生します。なぜそのような違いがあるのですか?Ubuntu12.04でgccを使用しています。

ヘッツロニ

を使用するchar s[] = "hello";と、char配列が現在の関数のスコープ内に作成されるため、関数に入るときにメモリがスタックに割り当てられます。

を使用する場合char *s = "hello";sは定数文字列へのポインタであり、コンパイラは、書き込みアクセスがブロックされているプログラムのメモリブロックに保存するため、セグメンテーション違反が発生します。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

char []と&char []の違いは?

分類Dev

char *とchar []の違い(2)

分類Dev

char **とchar [] []の違い

分類Dev

C#でのChar.IsDigit()とChar.IsNumber()の違い

分類Dev

C#でのChar.IsDigit()とChar.IsNumber()の違い

分類Dev

C / CPPのchar []とchar [n]の違いは何ですか?

分類Dev

char *とchar []のscanfの違いは?

分類Dev

char *とconstchar *の違いは?

分類Dev

const char []とconstchar *の違い

分類Dev

char []とint []の違い

分類Dev

new String(char [])とchar []。toStringの違い

分類Dev

Cのchar配列とcharポインタの違いは何ですか?

分類Dev

for(char&c:s)とfor(char c:s)の違いは?

分類Dev

CのcharstringA [LEN]とchar * stringB [LEN]の違いは何ですか

分類Dev

char *とcharの比較

分類Dev

char s []とchar * sの違いは何ですか?

分類Dev

'char *'と 'char(*)[100]'の違いは何ですか?

分類Dev

char []とcharの違いは何ですか?

分類Dev

char array []とchar * arrayの違いは何ですか?

分類Dev

CとC ++でのint値のcharポインタの違いへの変換

分類Dev

Javaの「char」と「String」の違い

分類Dev

charとint配列の違い

分類Dev

CとC#またはJAVAのcharの違いは何ですか

分類Dev

関数からchar *とchar []を返すことの違いは何ですか?

分類Dev

Javaでのchar配列とint配列の印刷の違い

分類Dev

Cでのchar *とconstchar *の比較

分類Dev

unsignedcharと乗算を使用したcharのC ++の違い

分類Dev

JavaのcharとCharacterの違いは何ですか?

分類Dev

hexとchar配列の印刷の違いは何ですか?

Related 関連記事

ホットタグ

アーカイブ