小编rah*_*man的帖子

使用free()函数的问题

我有一个char *str[xx]经常使用员工的C程序.一些字符串使用赋值运算符(=)填充,无需释放.但是其他一些(在同一个数组中)填充使用strdup(),需要在程序结束时释放:

char*str [10];

STR [1] = "您好";

STR [K] =的strdup( "HI");

两个字符串指针都是非空的,释放str [i]自然会产生"seg fault".我的问题是,在我的程序结束时,我没有跟踪哪个指针指向由其生成的字符串strdup().你可以帮助我找到生成的字符串,strdup以便我可以释放它们吗?谢谢

c linux free

4
推荐指数
1
解决办法
435
查看次数

cout打印十六进制而不是十进制

任何人都会想到,当一个简单的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())

任何提示?

谢谢

c++

4
推荐指数
1
解决办法
2万
查看次数

Gson不能反序列化继承类吗?

我有一个简单的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)

java json gson

4
推荐指数
1
解决办法
8755
查看次数

当其键不存在时初始化std :: map值

我在这里读到,如果密钥不存在,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)

c++ constructor stdmap

3
推荐指数
1
解决办法
2567
查看次数

"adb install"返回错误:协议错误(无状态)

我已经创建并运行了几个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)

android adb android-virtual-device

3
推荐指数
1
解决办法
3万
查看次数

反斜杠后跟 grep 是什么意思?

我正在以一种不耐烦的方式学习和使用 bash 脚本,在这个链接中我看到了这样的一行:

INSTALLED=$(dpkg -l \grep $1)
Run Code Online (Sandbox Code Playgroud)

你能告诉我 \grep 是什么意思吗?

谢谢

bash grep

3
推荐指数
1
解决办法
216
查看次数

C中#include的尴尬问题

你能解决我的问题吗?看看代码,它是自我解释的:

啊:

#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)保持不变的方式帮助我?

c include

2
推荐指数
1
解决办法
153
查看次数

用户定义的转换无效

请看一下这个程序及其产生的错误:

#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)

c++

2
推荐指数
1
解决办法
7166
查看次数

如何防止基于ASIO的服务器终止

我一直在阅读一些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 …

c++ boost network-programming boost-asio

2
推荐指数
1
解决办法
695
查看次数

如何从纪元到午夜获得UTC秒

我必须实例化一个自定义库类的对象,该类需要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可能会有所帮助,但我不知道如何提取所需的信息.

我很感激你的线索

c++

2
推荐指数
1
解决办法
2257
查看次数