關於C指標的應用問題記錄

2021-07-12 06:25:42 字數 527 閱讀 4590

最近在linux中使用c程式設計遇到將結構體內容賦值給指標變數後,將結構體清空發現指標變數的內容也被清空了:

#include #include char* name;

struct userinfo;

void main();

name=user.name;

memset((char*)&user,0,sizeof(user));

printf("name:%s\n",name);

}

列印結果為name:

這是為什麼呢??

後面除錯時通過列印char* name在記憶體中的位址發現,問題其實簡單。

其實所有指標在定義後,位址都是0位址,當指標進行賦值等初始化後指標位址等於賦值內容的位址,及前面 name=&user=0x*******。所以在使用memset進行清空時,清空位址&user後面的內容即清空了指標name中的內容。

解決方法可以用字元陣列char name[ ] 替換char *name來解決。如果大家用更好的方案,歡迎拍出!

關於串列埠操作的問題記錄

1 我們操作串列埠時,發現資料返回不對,或者沒有資料返回,首先需要看一下波特率是不是設定正確 2 delphi下用tmscom的串列埠操作 1 傳送資料 function senddata data array of byte len integer boolean var temp variant...

關於Excel匯入的問題記錄

前提為oledb excel。根據需求,多數是對於表的資料的匯入。於是產生這麼乙個需求過程 1。準備乙個空的標準excel。2。根據表名查詢字段 3。動態生成字段表頭 4。copy空的標準excel,迴圈表頭生成新的標準excel以二進位製流匯出。5。使用者再根據表頭的提示新增資料再上傳提交。1步和...

關於Excel匯入的問題記錄

前提為oledb excel。根據需求,多數是對於表的資料的匯入。於是產生這麼乙個需求過程 1。準備乙個空的標準excel。2。根據表名查詢字段 3。動態生成字段表頭 4。copy空的標準excel,迴圈表頭生成新的標準excel以二進位製流匯出。5。使用者再根據表頭的提示新增資料再上傳提交。1步和...