我正在開發一個應用程序,其中我遇到了包含多個'\ 000'之間的終止字符的字符串。我想要字符串中的空字符。 作爲處理這個時,字符串終止於'\ 000',所以我想增加它的ASCII值。但是當我這樣做時,我得到了分段錯誤。在字符串中用增加的ASCII值處理多個' 000'
我有以下爲
char *content;
content = malloc(8);
content = "\037\000\000\000\000\037\037\037";
int content_length = 8;
content[1] = content[1] + 1; // Increasing the ASCII value
這裏如果我刪除這增加了ASCII碼值的最後一行,我只得到1個字節在我的應用程序收到寫入代碼段。所以改變了第二個字節(內容[1]),然後應該傳輸2個字節,但是我得到了分段錯誤。
我做錯了什麼?十六進制或八進制數字是否做出這樣的事情?
感謝