linux程式設計遇到的奇怪問題(對於windows程式設計師來說)
今天使用結構體的時候遇到一個奇怪的問題,我定義了一個結構體,裡邊有一個數組,還有兩個函式指標例如下面:
typedef struct _MyStruct
{
int arr[2];
int (*Fun1)(_MyStruct* p);
int(*Fun2)(_MyStruct* p);
}MyStruct;
定義了一些全域性方法來初始化這個結構,例如:
CreateStruct(MyStruct* pThis)
{
pThis->arr[0] = 0;
pThis->arr[1] = 1;
pThis->Fun1 = ...;
pThis->Fun2 = ...;
}
.....
在類A中定義了MyStruct st_1;
建構函式中呼叫CreateStruct(&st_1);
但是在使用的時候卻出現了指標異常(debug發現記憶體中的資料亂了,似乎被什麼資料搞越界了一樣)。。。。,而當我把這個成員改成指標之後竟然好了。。。。費解啊。。。。。
最後發現了,竟然是沒有重新編譯的問題,我改了標頭檔案,沒有clean、,直接make,omg。。。。。悲劇啊。。。。。
相關推薦
linux程式設計遇到的奇怪問題(對於windows程式設計師來說)
今天使用結構體的時候遇到一個奇怪的問題,我定義了一個結構體,裡邊有一個數組,還有兩個函式指標例如下面: typedef struct _MyStruct { int arr[2]; int (*Fun1)(_MyStruct* p); int(*Fun2)(_MyStruct
《程式設計珠璣》程式碼之路1:學習位操作的神器----點陣圖排序(附解決程式設計師心理問題的門路)
最近由於“閒書”讀太多,不少朋友以為我要轉當產品經理了,故想起來把最近讀的《程式設計珠璣》以及自己編寫的程式碼整理成部落格,用程式碼證明自己的清白。雖然自己比較菜不能和Google和ACM金牌大佬PK技術,作為一隻老年菜雞ACMer,經常一頓操作猛如虎,一看戰績0AC。 但相信對於剛入門的小夥伴
做10年Windows程式設計師與做10年Linux程式設計師的區別
如果一個程式設計師從來沒有在linux,unix下開發過程序,一直在windows下面開發程式, 同樣是工作10年, 大部分情況下與在linux,unix下面開發10年的程式設計師水平會差別很大。我寫這篇文章並不是想貶低windows下面開發的人,做windows開發的人看
linux中gdb的使用 Linux程式設計基礎——GDB(設定斷點)
斷點 在程式碼的指定位置中斷,使程式在此中斷。 break <function> 在進入指定函式時停住 break <linenum>
linux程式設計實踐4(實現ls -l命令)
下面是ls -l的簡單實現,還有很多不完善的地方,如沒有進行排序等。 #include<stdio.h> #include<dirent.h> #include<sys/types.h> #include<sys/stat.h&
Unix/Linux程式設計實踐教程(一)
-------------------------------前言呃。。。。開始入坑linux。參考書當然是《Unix/Linux程式設計實踐教程》現寫下心得筆記,有什麼不對的,請大家指正哈。------------------------------修正2018.5.13貌
VS2013/MFC程式設計入門之三(MFC應用程式框架分析)
上一講講的是VS2013應用程式工程中檔案的組成結構。這一節就為大家分析下MFC應用程式框架的執行流程。 一.SDK應用程式與MFC應用程式執行過程的對比 程式執行都要有入口函式,在之前的C++教程中都是main函式,而Windows應
Linux 程式設計段錯誤(segmentation error)總結
最近一段時間在linux下用C做一些學習和開發,但是由於經驗不足,問題多多。而段錯誤就是讓我非常頭痛的一個問題。不過,目前寫一個一千行左右的程式碼,也很少出現段錯誤,或者是即使出現了,也很容易找出來,並且處理掉。 那什麼是段錯誤?段錯誤為什麼是個麻煩事?以及怎麼發現程
Google Java程式設計風格指南(獻給那些沒有良好編碼習慣的程式設計師們)
前言 這份文件是Google Java程式設計風格規範的完整定義。當且僅當一個Java原始檔符合此文件中的規則, 我們才認為它符合Google的Java程式設計風格。 與其它的程式設計風格指南一樣,這裡所討論的不僅僅是編碼格式美不美觀的問題, 同時也討論一些約定及編碼標準。然而,這份文件主要側重於我們所
windows程式設計師開發linux程式的頭一個月
- 開發環境選擇 vim,vscode,qt,visual studio都可以做linux c++開發,但是作為windows程式設計師,最熟悉的還是visual stuio,加上visual studio 2019 支援cmake及linu開發,所以最終選擇了visual studio 2019 + cma
Linux v4l2編程(攝像頭信息采集)
dwr 數據格式 切換 logs 註意 vbs 實例 isp char 基於Linux3.4.2,自己做一點兒視頻信息采集及網絡傳輸的小實驗,邊做邊學,一些基礎知識同步整理。。。。。 1. 定義 V4L2(Video For Linux Two) 是內核提供給應用程序訪
Linux管理員入門講解(與Win系統的區別)
linux 管理 員入 今天帶大家一起學習Linux,以後有空的話就一天一更,接下來都是講Linux系統的操作。大家都知道Win是一款以圖形為基礎的操作系統,其實更專業點的說,Win適合做客戶端,而Linux系統適合做服務器。 那Linux系統你進入就是一臺黑白電視機,沒錯!就是黑
第13章 linux系統管理技巧(日常運維管理技巧)
linux第13章 linux系統管理技巧(日常運維管理技巧)這一章的內容是核心,以後會用的幾率也是很大的,只要掌握必備的基礎知識,做初級系統管理員是不成問題的。13.1監控系統的狀態作為一個運維工程師、系統管理員,如果對自己的系統不了解的話,那怎麽排查問題呢?如果出現問題的話,肯定要查一下是什麽問題,哪裏的
Linux常用命令大全(非常全!!!)(轉)
mkfs 類型 e2fs 樹形 nmb id號 中間 vid path 最近都在和Linux打交道,感覺還不錯。我覺得Linux相比windows比較麻煩的就是很多東西都要用命令來控制,當然,這也是很多人喜歡linux的原因,比較短小但卻功能強大。我將我了解到的命令列
Linux命令詳解(部分昨今兩天)
Linux命令詳解基本命令1.Linux的基本原則:1、由目的單一的小程序組成;組合小程序完成復雜任務;2、一切皆文件;3、盡量避免捕獲用戶接口;(盡量不和用戶進行交互,就是一個程序一但開始運行,就不需要用戶進行任何操作,如ls命令,ifconfig命令)4、配置文件保存為純文本格式;2.命令形式命令格式:命
Linux常用命令大全(非常全!!!)
www. ssa chat opp general 處理器 chmod 常用命令 掃描 最近都在和Linux打交道,感覺還不錯。我覺得Linux相比windows比較麻煩的就是很多東西都要用命令來控制,當然,這也是很多人喜歡linux的原因,比較短小但卻功能強大。我將我了解
Linux軟件RAID(磁盤冗余陣列)
導入 verbose 時也 等級 磁盤容量 追加 add fff BE 一、LVM與RAID特點對比 LVM RAID LVM實現動態擴容 RAID支持動態擴容 LVM不支持磁盤加速 RAID支持磁盤加速 LVM不支持冗余(數據備份) RAID支持冗余
Linux安裝Zabbix Agent(主動模式、被動模式)
roc ron star sts mark 周期性 建立 ESS 會有 環境: 系統:centos 7.4平臺:zabbix 3.2安裝包:zabbix-3.2.11.tar 編譯安裝路徑 :/usr/local/zabbix_agentd/主動模式、被動模式介紹 如果需
每天學習一個LINUX命令:su (switch user 切換用戶)
home linu ora roo linux su watermark tex 環境 com Linux su命令用於變更為其他使用者的身份,除 root 外,需要鍵入該使用者的密碼。 語法參數: su [參數] [用戶名] 參數: -f , –fast:不必讀啟動
C#VS工程報錯:CS0234 名稱空間“Microsoft.VisualStudio”中不存在型別或名稱空間名“VCProjectEngine(是否缺少程式集引用)
問題截圖: 大多數的C#程式都是以using使用名稱空間開頭,但是我們使用名稱空間的同事也必須包含其程式集,比如大部分的名稱空間“XXXX”中不存在型別或名稱空間名“XXXXX”錯誤都是因為沒有在引用裡面新增其程式集,那麼怎麼新增程式集呢? 一、“檢視”----->“解決方案