簡體   English   中英

C 中的 strcat() function 更改了我程序中的隨機變量?

[英]The strcat() function in C changes a random variable in my program?

這是我寫的代碼:

int main(void){

  int m = 8;
  char digits[] = {};

  printf("%d\n" , m);
  strcat(digits, "0");
  printf("%d\n" , m);
}

我希望變量 m 保持不變,但 output 是這樣的:

8
0

為什么會這樣? 任何幫助將不勝感激。

您的數組“數字”未分配任何 memory 並且大小為零。 當你對待它執行'strcat'時,C 嘗試使用你的變量的地址做一些事情,溢出,並將東西放入變量位置旁邊的 memory 中。

看看 malloc function,這里有一個解釋它的鏈接。 https://www.tutorialspoint.com/c_standard_library/c_function_malloc.htm

暫無
暫無

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

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