簡體   English   中英

memory 結構內容中的值是什么意思 - C

[英]What is the meaning of the value inside memory content of a struct - C

我決定檢查打印結構實例的 memory 內容時會得到什么值:

#include <stdio.h>
#include <stdlib.h>

typedef struct {
 int value;
} Data;

int main(){
  Data *d = (Data*) malloc(sizeof(Data));
  printf("%d", *d);
  
  return 0;
}

我得到的結果是一個隨機值(對我來說),我嘗試做各種實驗,但不是這樣我才能理解這個值背后的原因。 但也許我只是不明白結構存儲在 memory 中的方式。 我想要一個解釋。

從 malloc 返回的malloc未初始化 在設置之前讀取它會導致看到不確定的值(即您看到的隨機值),並且在某些情況下會觸發未定義的行為 無法保證您甚至會從同一個 memory 位置兩次讀取相同的值。

您打印的方式也不正確。 當給定的格式說明符需要一個int時,您將一個結構實例傳遞給printf 這也會導致未定義的行為

暫無
暫無

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

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