2009年4月24日 星期五

[C++ ][原創]使用new動態配置二維陣列

在以往C++語言的環境下,一般想要動態的配置一個二維的陣列,必須先配置出一個一維陣列的指標,再將每一小塊的陣列配給那個指標。

int** a = new int*[b];
for (int i=0;i++)
a[i] = new int[10];






for (int i=0;i++)
delete[] a[i];
delete[] a;

但是這樣的配置記憶體是不連續的,而且要刪除時也很麻煩,必須先把每一欄的記憶體刪除,在去刪除指標陣列,現在有個方法可以直接使用new來完成一次配置,當然,也可以一次把記憶體刪除,且記憶體是連續的方便管理。
int (*a)[10] = new int[b][10];

delete[] a;
根據C與C++的規範,宣告成空陣列時,Column一定要有值,也就是說必須讓編輯器知道要多大的記憶體塊,好讓你可以runtime的去配置記憶體,所以就可以宣告成指向固定記憶體塊{(*int)[10]}的指標,再用new去配置那塊記憶體即可,a這個值就會是一個二維陣列的位置,且可以動態的被配置出來,且刪除時也較方便。

2008年12月25日 星期四

絕對的權力使人絕對的腐化,那是因為你沒要求他盡到絕對的義務~~

隨著組織規模越來越旁大,組織的首腦會逐漸地將權力下放至各個管理階層,這是自然而然形成的現象,因為良好的管理品質必須維持管理者與管理人的一定比例;隨著時間過去,那些權力的擁有者似乎逐漸忘記當初權力下放的原因與目的,於是濫用權力的情況發生,當初獲得授權所享有的權力沒有對應到應盡的義務,所以公平的天秤失衡了,自然就會造成天怒民怨,自然組織也就跟著衰退,最後可能就會消失殆盡也不一定。

2008年12月22日 星期一

人越大就越複雜,其實複雜的是你的心.........

每個人的成長過程,從簡單的東西開始學習複雜的事,喝奶、吃粥、吃飯一路進步著,爬行、走路、跑步一直進步著,隨著會的東西越來越多,心境也越來越複雜,憤怒、說謊、嫉妒、畏縮一直複雜變多,但是回歸到原點,其實你的需求一直都是沒變的,變得複雜的只有你的心,放下包袱的那一刻起,你會發現其實一點都不複雜,而且什麼事都可以解決。

2008年10月14日 星期二

Solve [error MIDL2025] Problem

安裝了新版的Microsoft Windows SDK for Windows Server 2008 and .NET Framework 3.5後,用VS2005編譯程式會出現error MIDL2025 : syntax error : expecting ] or , near的錯誤,這是因為使用了新版本的VISTA SDK頭文件,而使用舊版本的MIDL工具來編譯所導致。
這個時候查一下Release Note文件,上面有教你執行以下布驟:

To run the Microsoft Visual Studio 2005 Registration Tool, go to Start > All Programs > Microsoft Windows SDK v6.1 > Visual Studio Registration > Windows SDK Configuration Tool (on Windows Vista or Windows Server 2008, right-click and select Run as Administrator).

執行完後,果然就可以順利編譯了。

2008年10月2日 星期四

Solve ﹝error PRJ0050﹞ problem

最近需要開發ActiveX 的OCX程式,才剛開一個新的專案,一建置就出了一個Error「error PRJ0050: Failed to register output. Please ensure you have the appropriate permissions to modify the registry.」上Google爬了一下,找到解決的方法:
OS:Vista
Develop tool:Visual Studio 2005
Sloved Step:到Control Panel選擇 User Accounts ,再選擇Turn User Account Control on or off,然後將UAC關閉即可

因為UAC的高安全性阻止了元件的註冊才會發生這個問題。