0

重複の可能性:
Linux の C での Char 配列とポインターによるセグメンテーション違反

次のコードを検討してください

#include <stdio.h>

int main()
{
   char a[] = "hello";
   char *ptr = "world";
   a[2] = 'y'; //Line1. No segmentation fault
   ptr[2] = 'u'; //Line2. Causes Segmentation fault

   printf("name = %s\n", a); 
   printf("name = %s\n", ptr);

   return 0;
}

Line2 が文字列定数を変更しようとしたためにセグメンテーション違反が発生した場合、ルールが Line1 に適用されないのはなぜですか?

4

0 に答える 0