我有一个char *str[xx]
经常使用员工的C程序.一些字符串使用赋值运算符(=)填充,无需释放.但是其他一些(在同一个数组中)填充使用strdup()
,需要在程序结束时释放:
char*str [10];
STR [1] = "您好";
STR [K] =的strdup( "HI");
两个字符串指针都是非空的,释放str [i]自然会产生"seg fault".我的问题是,在我的程序结束时,我没有跟踪哪个指针指向由其生成的字符串strdup()
.你可以帮助我找到生成的字符串,strdup
以便我可以释放它们吗?谢谢
任何人都会想到,当一个简单的std::cout
格式化十进制格式(如整数)时,它会以十六进制格式打印一个值吗?
例如,我有一行:
std :: cout <<"_ Agent ["<< target <<"]仍然在"<< ((target-> currWorker) - > getEntities().size()) <<"worker的实体["<< target-> currWorker <<"]"<< std :: endl;
哪个会打印:
_Agent [0x2c6d530]仍然属于worker [0x2c520f0]的0x1实体
注意:
1 - 所说的输出是十进制的,有时是十六进制的
2-行为是SMAE即使我改((target->currWorker)->getEntities().size())
到(int)((target->currWorker)->getEntities().size())
任何提示?
谢谢
我有一个简单的Json结构,如:
{"MessageType":"TimeData","TimeData":{"hh":12,"mm":13,"ms":15,"ss":14}}
Run Code Online (Sandbox Code Playgroud)
我设计了以下类来反序列化它:
public class JsonMessage
{
public enum MessageTypes{
WhoAreYou,
TimeData
}
JsonMessage(){
}
public MessageTypes MessageType;
}
Run Code Online (Sandbox Code Playgroud)
class TimeData extends JsonMessage{
int hh;
int mm;
int ss;
int ms;
TimeData() {
}
}
Run Code Online (Sandbox Code Playgroud)
我需要将反序列化分为两个阶段:
1-反序列化阅读MessageType
.
2-继续基于的反序列化 MessageType
代码很简单:
public void dispatch(Object message, IoSession session)
{
Gson gson = new Gson();
JsonMessage result = gson.fromJson(message.toString(), JsonMessage.class);
System.out.println(result.MessageType.toString());
switch (result.MessageType)
{
case WhoAreYou:{
//.....
break;
}
case TimeUpdate:
TimeData res = new Gson().fromJson(message.toString(), TimeData.class);
System.out.println(res.hh);
break; …
Run Code Online (Sandbox Code Playgroud) 我在这里读到,如果密钥不存在,std :: map operator []会创建一个对象!
首先,我可以知道在哪里可以找到这个索赔的参考资料吗?(虽然我知道这是真的)
接下来,想象下面的代码片段:
#include <iostream>
#include <vector>
#include<map>
class Value {
//..
int some_member; //is used for any purpose that you like
std::vector<int> some_container;
public:
Value(int some_member_) :
some_member(some_member_) {
std::cout << "Hello from the one-argument constructor" << std::endl;
}
Value() {
std::cout << "Hello from the no argument constructor" << std::endl;
}
void add(int v) {
some_container.push_back(v);
}
int getContainerSize()
{
return some_container.size();
}
//...
};
//and somewhere in …
Run Code Online (Sandbox Code Playgroud) 我已经创建并运行了几个Android模拟器,现在我想在它们上安装应用程序.这是我尝试几次的故事:
$ adb -s emulator-5562 install xxx.apk
* daemon not running. starting it now on port 5037 *
* daemon started successfully *
error: protocol fault (no status)
- waiting for device -
^C
$ adb devices
* daemon not running. starting it now on port 5037 *
* daemon started successfully *
List of devices attached
emulator-5554 device
emulator-5556 device
emulator-5558 device
emulator-5560 device
emulator-5562 device
$ adb -s emulator-5562 install xxx.apk
error: protocol fault (no status)
- waiting …
Run Code Online (Sandbox Code Playgroud) 我正在以一种不耐烦的方式学习和使用 bash 脚本,在这个链接中我看到了这样的一行:
INSTALLED=$(dpkg -l \grep $1)
Run Code Online (Sandbox Code Playgroud)
你能告诉我 \grep 是什么意思吗?
谢谢
你能解决我的问题吗?看看代码,它是自我解释的:
啊:
#include"c.h"
void a()
{
printf("I am in a\n");
}
Run Code Online (Sandbox Code Playgroud)
CH:
#include<stdio.h>
void a();
void b();
Run Code Online (Sandbox Code Playgroud)
main.c中:
#include"c.h"
main()
{
a();
}
Run Code Online (Sandbox Code Playgroud)
并gcc main.c
会给我:
/tmp/ccuaiUEA.o: In function `main':
main.c:(.text+0x7): undefined reference to `a'
collect2: ld returned 1 exit status
Run Code Online (Sandbox Code Playgroud)
能否以文件扩展名(.h和.c)保持不变的方式帮助我?
请看一下这个程序及其产生的错误:
#include <iostream>
using namespace std;
class A
{
public:
virtual void f(){}
int i;
};
class B : public A
{
public:
B(int i_){i = i_;} //needed
B(){} //needed
void f(){}
};
int main()
{
//these two lines are fixed(needed)
B b;
A & a = b;
//Assignment 1 works
B b1(2);
b = b1;
//But Assignment 2 doesn't works
B b2();
b = b2; // <-- error
}
Run Code Online (Sandbox Code Playgroud)
编译时,我收到以下错误:
$ g++ inher2.cpp
inher2.cpp: In function ‘int main()’:
inher2.cpp:32:10: …
Run Code Online (Sandbox Code Playgroud) 我一直在阅读一些Boost ASIO教程.到目前为止,我的理解是整个发送和接收是一个只能迭代一次的循环.请看下面的简单代码:
client.cpp:
#include <boost/asio.hpp>
#include <boost/array.hpp>
#include <iostream>
#include <string>
boost::asio::io_service io_service;
boost::asio::ip::tcp::resolver resolver(io_service);
boost::asio::ip::tcp::socket sock(io_service);
boost::array<char, 4096> buffer;
void read_handler(const boost::system::error_code &ec, std::size_t bytes_transferred)
{
if (!ec)
{
std::cout << std::string(buffer.data(), bytes_transferred) << std::endl;
sock.async_read_some(boost::asio::buffer(buffer), read_handler);
}
}
void connect_handler(const boost::system::error_code &ec)
{
if (!ec)
{
sock.async_read_some(boost::asio::buffer(buffer), read_handler);
}
}
void resolve_handler(const boost::system::error_code &ec, boost::asio::ip::tcp::resolver::iterator it)
{
if (!ec)
{
sock.async_connect(*it, connect_handler);
}
}
int main()
{
boost::asio::ip::tcp::resolver::query query("localhost", "2013");
resolver.async_resolve(query, resolve_handler);
io_service.run();
}
Run Code Online (Sandbox Code Playgroud)
程序resolves
地址,connects …
我必须实例化一个自定义库类的对象,该类需要nanoseconds since 'epoch' in UTC time
构造:
class utc_time
{
public:
utc_time(TYPE nanoseconds_since_epoch):
_nanoseconds_since_epoch(nanoseconds_since_epoch){}
private:
TYPE _nanoseconds_since_epoch;
};
Run Code Online (Sandbox Code Playgroud)
我的输入是什么nanoseconds since 'midnight' in UTC time
.当然,我需要获得epoch
直到最后midnight
纳秒(以UTC为单位)将其添加到我的输入并将其提供给我的类构造函数.我知道我们有gtime可能会有所帮助,但我不知道如何提取所需的信息.
我很感激你的线索