文章講解了在WINDOWS下,最好的方式是用Virtual Alloc分配內(nèi)存,它不是在堆,也不是在棧,而是直接在進(jìn)程地址空間保留一塊內(nèi)存,雖然用起來最不方便。但是速度快,也最靈活。
更多信息請?jiān)L問:考試吧計(jì)算機(jī)類論壇
問題引入:
在實(shí)習(xí)過程中發(fā)現(xiàn)了一個(gè)以前一直默認(rèn)的錯(cuò)誤,同樣char *c = "abc"和char c[]="abc",前者改變其內(nèi)容程序是會(huì)崩潰的,而后者完全正確。
程序演示:
測試環(huán)境Devc++
代碼
#include <iostream>
using namespace std;
main()
{ char *c1 = "abc";
char c2[] = "abc";
char *c3 = ( char* )malloc(3);
c3 = "abc";
printf("%d %d %s\n",&c1,c1,c1);
printf("%d %d %s\n",&c2,c2,c2);
printf("%d %d %s\n",&c3,c3,c3);
getchar(); }
運(yùn)行結(jié)果
2293628 4199056 abc
2293624 2293624 abc
2293620 4199056 abc
相關(guān)推薦:
C++等考輔導(dǎo):C++static關(guān)鍵字使用時(shí)的技巧 2009年C++等考輔導(dǎo):類靜態(tài)成員和靜態(tài)成員函數(shù)