我需要分配4字节内存,分配的内存地址应该是4的倍数.例如:400,404,408,40c
如果我使用任何内存分配功能,我会收到可用的内存,地址不一定是4的倍数.
所以任何人都可以建议实现这个设计.
我有一个Parser.h,Parser.cpp文件,其中包含构造函数
Parser::Parser(string filename){....}
Run Code Online (Sandbox Code Playgroud)
现在我想在我的functions.cpp文件中使用我的解析器,我确保在那里
#include "Parser.h"
Run Code Online (Sandbox Code Playgroud)
在我的函数中,我想使用解析器如何创建它的新实例,这是我所拥有的,但我得到语法错误.
Parser::Parser parser("filename.txt");
Run Code Online (Sandbox Code Playgroud)
对不起,我应该确保我正确复制了我的代码,我没有引用错误,也没有忘记包括parser.h
char short_string[] = "abc"
char short_string[] = {'a', 'b', 'c'}
Run Code Online (Sandbox Code Playgroud)
我认为不同的是第二行是一个switch语句,它需要来自用户的输入(ab或c,因为第一行更多是一个声明....这是对的吗?
我在字符串中添加了一个空格,但Trim不会删除此空格.为什么不?
str:=tstringlist.create;
str.LoadFromFile(s);
Trim(str.strings[1]);
str.Free;
Run Code Online (Sandbox Code Playgroud) 我在一个定义为的类中有一个map结构std::map<const char*, double>,在构造函数中,我添加了三个全部设置为零的元素,它们的键为"MR_WP","MR_WM"和"MR_WC".我还有几个访问函数到地图,但在执行访问之前,有一个函数检查以确保键实际存在于地图中.
基本上,我有一些说法:
if ( map.find(_key) == map.end() ) throw "error"
Run Code Online (Sandbox Code Playgroud)
当我将const char*字符串传递给访问函数(如getValue("MR_WP"))时,没有错误.
但是,如果我这样做:
std::string str = "MR_WP";
double value = map.getValue( str.c_str() );
-or-
std::string str = "MR_WP";
double value = map.getValue( str.data() );
Run Code Online (Sandbox Code Playgroud)
然后抛出错误.我尝试了两个函数,因为我认为错误可能是由null字符引起的.我需要这样做的原因是因为我想在运行时获取密钥的最后一个字母,例如:
std::string type = getType();
std::string str = "MR_W" + type;
double value = map.getValue( str.c_str() ); //or with str.data()
Run Code Online (Sandbox Code Playgroud) 我正在尝试将两组数据插入到我的数据库中,它给出了一个错误,说它在SQL语句的末尾缺少一个分号.
这是我输入的代码:
procedure TForm9.Button1Click(Sender: TObject);
var
sNewTeam, sNewCountry : string;
begin
sNewTeam := InputBox('NEW','Insert The Name Of The New Team','',);
sNewCountry := InputBox ('NEW','Insert The New Country','');
qryAdmin.Active := false;
qryAdmin.SQL.Text := 'INSERT INTO Teams(Teams) VALUES("'+sNewTeam+'")' + 'Country(Teams) VALUES("'+sNewCountry+'")';
qryAdmin.ExecSQL;
end;
Run Code Online (Sandbox Code Playgroud) 在这个程序中,我试图取78华氏度并将其返回到Celsius版本和开尔文的类中.但由于一些奇怪的原因,我只是把它作为输出.我究竟做错了什么?
这是我的输出.
78 0 273.15
#include <iostream>
using namespace std;
class Temperature
{
public:
double getTempKelvin();
double getTempFahrenheit();
double getTempCelcius();
void setTempKelvin(double k);
void setTempFahrenheit(double f);
void setTempCelcius(double c);
private:
double kelvin, fahrenheit, celcius;
double c, f, k;
};
int main ()
{
double c, f, k;
Temperature Conv;
Conv.setTempFahrenheit(f);
Conv.setTempCelcius(c);
Conv.setTempKelvin(k);
cout << Conv.getTempFahrenheit() << endl;
cout << Conv.getTempCelcius() << endl;
cout << Conv.getTempKelvin() << endl;
return 0;
}
void Temperature::setTempFahrenheit(double f)
{
f = 78;
fahrenheit = f; …Run Code Online (Sandbox Code Playgroud) 我正在写一个代表顺序尺度的类,但没有逻辑零点(例如时间).这个规模应该允许加法和减法(operator+,operator+=,...),但无法繁殖.
然而,我总觉得这是一个很好的做法,当一个人重载一个特定组的一个操作符(在这种情况下是数学运算符)时,还应该重载属于该组的所有其他操作符.在这种情况下,这意味着我还需要重载乘法和除法运算符,因为如果用户可以使用,A+B他很可能期望能够运行其他运算符.
有没有一种方法可以用来在编译时为此抛出错误?最简单的方法就是不要重载操作符operator*,......但是添加更多的解释似乎是合适的operator* is not know for class "time".
或者这是我真的不应该关心的事情(RTFM用户)?
此代码给出了一条错误消息:[错误] Unit1.pas(52):未声明的标识符:'Edit1'.
procedure SetTCPIPDNSAddresses(sIPs : String);
begin
SaveStringToRegistry_LOCAL_MACHINE(
'SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces\' + Edit1.text,
'NameServer', sIPs);
end;
Run Code Online (Sandbox Code Playgroud)
为什么我会收到此错误,如何解决?
我正在学习C++,这次我搞乱了指针,研究了this指针和多态.我的问题是,转换是否安全,我知道基本上我可以m_uConnectedUsers直接从CUser课堂上访问因为'公共',但我可能会找到一个需要它的机会,我想知道你的专业人士的意见它.
#include <windows.h>
#include <iostream>
using namespace std;
class CUserCounter
{
public:
CUserCounter();
virtual ~CUserCounter(){};
BOOL m_bEmpty;
u_long m_uConnectedUsers;
};
CUserCounter::CUserCounter()
{
m_bEmpty = TRUE;
m_uConnectedUsers = 0;
}
class CUser : public CUserCounter
{
public:
CUser(LPCTSTR szName, BOOL bConnected, BOOL bChatting = FALSE );
virtual ~CUser(){};
BOOL m_bConnected;
BOOL m_bIsChatting;
TCHAR szCharName[32];
bool IncreaseMoverMeter( unsigned uMeters );
};
CUser::CUser( LPCTSTR szName, BOOL bConnected, BOOL bChatting )
{
if( szName )
{
if( strlen( …Run Code Online (Sandbox Code Playgroud)