C語言字串陣列可以修改嗎?

C語言字串陣列可以修改嗎?少年的桂嬋2021-11-02 20:11:12

不可以。當您在原始碼中編寫“String”時,它將直接寫入可執行檔案中,因為該值需要在編譯時知道(有工具可以將軟體分開並找到其中的所有純文字字串)。

當你寫char *a = “This is a string”,“這是字串”的位置在可執行檔案中,而指向的位置在可執行檔案中。可執行映像中的資料是隻讀的。

您需要做的(如其他答案所指出的)是在堆上或堆疊幀上的位置建立該記憶體。

如果宣告一個本地陣列,則在堆疊上為該陣列的每個元素建立空格,並將字串文字(儲存在可執行檔案中)複製到堆疊中的該空間。