資料結構記憶體邊界對齊的三條原則

以前看過這個問題並寫程式測試,詳見http://blog.csdn.net/jcwKyl/archive/2008/04/21/2311112.aspx#1290568。多謝YGone網友發現了其中的錯誤並在評論中指了出來,看到評論後又回頭去看以前的那篇日誌,發現其中還有很多錯誤,於是把這個問題重新整理總結了一下,結果寫在這篇日誌中。YGone網友發現的錯誤主要是以下資料結構:#pragma  pack(8)struct example1 {    short a;    long

數組迴圈移位問題

《編程之美》中的題目要求只使用兩個附加變數。王曉東編著的《演算法設計與實驗題解》中要求只用到O(1)的輔助空間。其它地方兩本書的要求相同,都是O(n)的時間複雜度。兩本書中的解法總結起來就是三種方法:(1)迴圈換位演算法(2)三次反轉演算法(3)排列迴圈演算法。這三種演算法在王曉東的著作中都有實現代碼。第一種演算法是最原始的演算法。第二種演算法比較巧妙,即使用VU=reverse(reverse(U)reserve(V)),寫成數學形式就是:

約瑟夫環的數學解法

原文出處:http://blog.csdn.net/MapReduce/archive/2007/04/02/1549494.aspx作者:MapReduce全文:約瑟夫環問題是一道經典的資料結構題目問題描述:n個人(編號0~(n-1)),從0開始報數,報到(m-1)的退出,剩下的人繼續從0開始報數。求勝利者的編號。一般我們採用一個迴圈隊列來類比約瑟夫環的求解過程,但是如果n比較大的時候,採用類比的方式求解,需要大量的時間來類比退出的過程,而且由於需要佔用大量的記憶體空間來類比隊列中的n個人,並

關於JOJ 2042的啟發——一種寫程式計算冪函數的方法

JOJ 2042是一個程式理解題,其中給出了一段奇妙的計算x^3的程式。它的原理如下:由上可知,冪函數的增加量第次加6,其初始值為1.所以,就可以把程式寫成這樣來計算立方:int f(x) {       int c = 0, d = 1, e = 6;       while(x--) {              c += d;              d += e;              e += 6;       }       reutnrn

數學是一種思考方式

本方來自:http://www.kuqin.com/math/20071126/2658.html數學是一種思考方式作者:不詳 來源:互連網   酷勤網收集 2007-11-26 摘要酷勤網  數學的發展曆史中,又包含了許多人無窮的創造力。光靠邏輯推理來一步步解決問題顯然是不夠的。很多數學問題的解決,都起源於某種直覺,某種創造性構建,甚至把許多表面不相關的東西牽連在一起思考。然後再通過邏輯嚴密的推導過程來完善它。這幾天有個讀者來來去去給我寫了幾封 email

APOP協議,NNTP協議及其它

這是在emacs中配置mew時遇到的疑問。 APOP表示authentication post office protocol,可以說是POP3協議的加強版。 NNTP全稱network news transfer protocol,網路新聞傳輸通訊協定。 APOP的資料詳見:http://en.wikipedia.org/wiki/Post_Office_Protocol,上面還提及到了IMAP(Internet Message Access

this指標作為函數隱含參數傳遞的方法

c++中的類成員函數中有個隱含的this指標做參數,參數傳遞過程原來是這樣的(VC++6.0):測試代碼:#include <iostream>using namespace std;class A {public:    void f() {        cout << "A::f" << endl;    }};int main() {    A a;    a.f();    return 0;}偵錯工具執行到a.f()處,查看彙編代碼:a.f();l

Diffie-Hellman金鑰交換演算法的原理及程式示範

在http://en.wikipedia.org/wiki/Diffie-Hellman上面給出了這個金鑰交換協議的曆史,原理,重要文獻的連結,以及示範代碼。它的數學基礎就是離散對數這個數學難題。用它進行金鑰交換的過程簡述如下: 選取兩個大數p和g並公開,其中p是一個素數,g是p的一個模p本原單位根(primitive root module p),所謂本原單位根就是指在模p乘法運算下,g的1次方,2次方……(p-1)次方這p-1個數互不相同,並且取遍1到p-1;

Undefined external “macPib” ;Undefined external “MAC_MlmeSetReq::?relay” 等錯誤

將SensorDemo檔案夾複製到samples目錄下,開啟工程編譯後出現以下錯誤:Error[e46]: Undefined external "MAC_MlmeSetReq::?relay" referred in mac_beacon ( D:\Texas

一次網路故障的解決日誌

同學過來告訴我,電腦上不了網。癥狀:在vmare中,安裝了redhat 9,將redhat 9的上網模式設定為bridge模式,redhat 9的IP是10.60.38.253,windows宿主機IP是10.60.38.250,現在,redhat 9能ping能windows宿主機,但就是上不了網。經仔細檢查,redhat

ocx註冊以及檢測)

轉自:http://home.51.com/heiyijiushi/diary/item/10053693.htmlC#自動實現Dll(OCX)控制項註冊的兩種方法2012-07-31 21:20C#自動實現Dll(OCX)控制項註冊的兩種方法儘管MS為我們提供了豐富的.net

虛擬機器+ubuntu 圖形介面和終端介面的切換

虛擬機器環境,在圖形介面和文本介面間切換:1  VMWare虛擬機器下,由圖形介面切換到文本介面,和虛擬機器設定有關,預設VM佔用Ctrl+Alt為熱鍵,所以由圖形介面切換到文本介面的按鍵組合為: Ctrl+Alt+Shift+F(n) ,其中F(n)為F1-F6 ;    由文本介面切換回圖形介面的按鍵組合為: Alt+F7 ; 在文本介面不同控制台介面之間切換: Alt+F(n) , 其中F(n)為F1-F6,為6個控制台;2  也可以修改vmware

關於 struct 和 union 儲存時記憶體邊界對齊的問題(二)

新的部落格中好像修改以前寫的部落格的功能沒有了。一個是在DEBUG版本中好像填充位元組都是0xCC,0xCC是int 3中斷指令的機器碼。在release版本中,填充的位元組好像沒什麼規律。下面是winnt.h中的那段代碼:// winnt.h  line 4947#ifndef _MAC#include "pshpack4.h"                   // 4 byte packing is the default#define IMAGE_DOS_SIGNATURE      

up與dup2函數介紹—-轉載

up與dup2函數介紹----轉載dup和dup2也是兩個非常有用的調用,它們的作用都是用來複製一個檔案的描述符。它們經常用來重新導向進程的stdin、stdout和stderr。這兩個函數的 原形如下:#include <unistd.h>    int dup( int oldfd );    int dup2( int oldfd, int targetfd

gdb基本調試

 本文寫給主要工作在Windows作業系統下而又需要開發一些跨平台軟體的程式員朋友,以及程式愛好者。GDB是一個由GNU開源組織發布的、UNIX/LINUX作業系統下的、基於命令列的、功能強大的程式調試工具。GDB中的命令固然很多,但我們只需掌握其中十個左右的命令,就大致可以完成日常的基本的程式調試工作。命令解釋樣本file <檔案名稱>載入被調試的可執行程式檔案。 因為一般都在被偵錯工具所在目錄下執行GDB,因而文本名不需要帶路徑。(gdb) file

大學這四年

高中老朋友打電話過來,聊的還好。四年沒見面,打個電話不談天氣,不談食堂飯菜差,不談時光流逝如白駒過隙的,怕也只有這一個朋友了。大學四年就 回家兩次,第一次回家,曆史老師連我姓什麼都忘記了。第二次回家,則是有同學聚會。看著好多模糊的面孔,還懷疑好多人可能是上輩子認識的。我記得一些人, 可是他們可能不記得我,

利用Google串連全球即時監控網路攝影機,看風景不錯啊

利用Google串連全球即時監控網路攝影機,看風景不錯啊 轉自http://blog.renren.com/share/268626012/1126834756來源: 朱瑞-Sam的日誌 第一部分

ubuntu9.0.4 pygrub找不到fsimage問題的解決

就是這麼一個很小的問題,又折騰了一個晚上,甚至想到要把本來的不太熟悉的ubuntu 9.04刪除掉,重新安裝成centos作業系統。這個問題的表現就是啟動虛擬機器後停在那裡一直沒有反應,使用xmlist檢查虛擬機器狀態看到的是p狀態(p代表pause)。檢查虛擬機器組態檔,沒有任何問題,同樣的設定檔和鏡像檔案在實驗室服務器的centos上就運行非常穩定非常正常。手動使用xm

串連標準I/O的管道模型

管道在shell中最常見的應用是串連不同進程的輸入輸出,比如使A進程的輸出變成B進程的輸入等。考察shell命令“cat pipe3.c | more”,進程“more”使用了進程“cat pipe3.c”的輸出。例1. 分別重新導向標準輸入、標準輸出、標準錯誤輸出到檔案描述符fd1、fd2和fd3中。答:複製檔案描述符fd1到檔案描述符0中即可重新導向標準輸入,其它的類似,如以下語句所示:dup2(fd1, 0);   /* 複製fd1到檔案描述符0中,更改標準輸入為fd1

vi與emacs

 **************************************************************************剛走沒多久,又開始了。我們linux版的版主表示這周的使用指南將要取消,這個指南是關於使用vi能夠完成的一些新的任務。Greg

總頁數: 61357 1 .... 13980 13981 13982 13983 13984 .... 61357 Go to: 前往

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.