-1
我正在寫一個小型的數據庫管理器,但我在做類似VARCHAR類型的事情時遇到了問題。C++試圖做某種VARCHAR
它應該像這樣工作:我有一個3位數的單詞,比如說「RPG」,它應該分配足夠的大小來放置RPG \ 0。
發生了什麼:如果我使用new,malloc(3),malloc(1),malloc(sizeof(char)*「RPG」.size()),我可以隨時在內存中使用更大的區域。我試着用malloc_size()來檢查它,並且它總是返回16.
我該怎麼做才能分配足夠的空間?
編輯:
有沒有具體的代碼,我想的東西出來,並試圖找出如何做到不同尺寸的字符,但它會是這樣的:
char * myChar1 = (char*)malloc(sizeof(unsigned short int));
size_t howManyBytes = malloc_size(myChar1);
cout << "howManyBytes: " << howManyBytes << " bytes" << ends; //should say 2, instead it says 16
strcpy(myChar1,"HELLO HOW ARE YOU"); //shouldn't write the entire sentence as its bigger than 2 bytes
cout << "MYCHAR1: " << myChar1 << endl; //string
cout << "&MYCHAR1: " << &myChar1 << endl; //adress
cout << "*MYCHAR1: " << *myChar1 << endl; //first letter
你能否提供你的代碼? – Sigstop
無代碼。但是,我已經可以告訴你的是,你命名的所有*選項('new'和'malloc')幾乎肯定是這個工作的錯誤工具。 –
我以爲它不需要代碼,我用我最後一次嘗試編輯,謝謝 –