困擾了多日的問題,今天終於解決了,問題出在sizeof()函式上。
問題的現象:
在使用wcscpy_s對tchar*變數進行賦值時,提示記憶體空間太小。
出錯資訊見下圖
);問題的原因:
tchar *stringa=new tchar[100];
wcscpy_s(stringa,sizeof(stringa),"abcd");//對stringa進行賦值時,出錯
sizeof(stringa)的值是4,小於字元粗"abcd"的長度(長度為5),所以提示以上錯誤資訊。
sizeof(stringa)的值實際上是sizeof(tchar*)的值,而不是stringa所指向的記憶體空間的長度。
在林銳的《高質量c++/c程式設計指南》7.3.3節中有詳細介紹,之前也看過幾遍,但是在用的時候還是出錯了。
位址匯流排,字長,記憶體容量,定址範圍 之間的計算
處理機字長是指處理機能同時處理 或運算 的位數,即同時處理多少位 bit 資料。比如intel pentium 4處理器字長為32位,它能同時處理32位的資料,也即它的資料匯流排為32位。以前的處理器比如8086,則為16位處理器,現在新興的64位處理器,它的資料吞吐能力更強,即能同時對64位資料進...
關於位址匯流排,字長,記憶體容量,定址範圍的計算
在軟考學習中我們經常遇到計算位址匯流排 記憶體等方面的題,這也是我們大家經常混亂的知識,下面就讓我們來共同學習一下 處理機字長是指處理機能同時處理 或運算 的位數,即同時處理多少位 bit 資料。處理器的字長越大,說明它的運算能力越強。比如我們的膝上型電腦,現在一般都是64位的電腦,這也就是說我們的...
位址匯流排,字長,記憶體容量,定址範圍 之間的計算
處理機字長是指處理機能同時處理 或運算 的位數,即同時處理多少位 bit 資料。比如intel pentium 4處理器字長為32位,它能同時處理32位的資料,也即它的資料匯流排為32位。以前的處理器比如8086,則為16位處理器,現在新興的64位處理器,它的資料吞吐能力更強,即能同時對64位資料進...