小编Pie*_* P.的帖子

使用调试器gdb时的未知结束信号

我已经在Mac OS X上安装了GDB并测试它是否有效我已经使用了以下C程序.

#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[]) {

    int *my_array = (int *) malloc(5 * sizeof(int));
    int i;
    for (i = 0; i < 1000000; i++) {
        my_array[i] = i;
    }

    free(my_array);

    return 0;

}
Run Code Online (Sandbox Code Playgroud)

编译时出错,这是正常的(分段错误)

但是,在编译命令中添加-g标志并在我编译的程序上运行gdb时,我在启动命令运行后收到此消息

During startup program terminated with signal ?, Unknown signal.
Run Code Online (Sandbox Code Playgroud)

真的不知道它来自哪里.我添加了一个证书,以确保gdb在OS X上正常工作但我找不到任何解决此问题的方法.

c macos gdb

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

Flexbox垂直和水平居中

我想在一个网页上放置水平和垂直居中的内容。我已经做到了

<!DOCTYPE html>
<html>
  <head>
    <title>Eko</title>
    <%= csrf_meta_tags %>    
    <%= stylesheet_link_tag    'application', media: 'all', 'data-turbolinks-track': 'reload' %>    
  </head>    
  <body>
    <div class="login-container">    
      <h1>Hello</h1>    
    </div>    
  <%= javascript_include_tag 'application', 'data-turbolinks-track': 'reload' %>
  </body>    
</html>
Run Code Online (Sandbox Code Playgroud)

这是我的CSS。

.login-container {    
    display: flex;
    justify-content: center;
    align-items: center;    
}
Run Code Online (Sandbox Code Playgroud)

但是,不会出现垂直中心(只是水平)。当我应用此CSS时,它可以工作。

body {    
    display: flex;
    justify-content: center;
    align-items: center;    
}
Run Code Online (Sandbox Code Playgroud)

为什么只有在将其应用于身体时才起作用?

html css css3 flexbox

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

为带有立体声音频流的两个缓冲区分配AudioBufferList

我在C中有以下代码,它们分配具有适当长度的AudioBufferList。

  UInt32 bufferSizeBytes = bufferSizeFrames * sizeof(Float32);
  propertySize = offsetof(AudioBufferList, mBuffers[0]) + (sizeof(AudioBuffer) * mRecordSBD.mChannelsPerFrame);

  mBufferList = (AudioBufferList *) malloc(propertySize);
  mBufferList->mNumberBuffers = mRecordSBD.mChannelsPerFrame;
  for(UInt32 i = 0; i < mBufferList->mNumberBuffers; ++i)
  {
    mBufferList->mBuffers[i].mNumberChannels = 1;
    mBufferList->mBuffers[i].mDataByteSize = bufferSizeBytes;
    mBufferList->mBuffers[i].mData = malloc(bufferSizeBytes);
  }
Run Code Online (Sandbox Code Playgroud)

在大多数情况下,时间mChannelsPerFrame是2,因此上面的代码创建了两个缓冲区,每个通道一个。每个缓冲区都有一个值得保留的内存bufferSizeBytes

如何在Swift中复制相同的行为?

core-audio audiobufferlist swift

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

访问"数据"的下一个元素

我已经定义了这些数据 data MonthData = Jan | Feb | Mar | Apr | May | Jun | Jul | Aug | Sep | Oct | Nov | Dec deriving ( Eq, Show, Enum, Ord )

如何隐藏访问前一个元素?

例如,我有一个Jan,我想访问Feb而不明确键入Feb

干杯

haskell functional-programming

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

shared_from_this和this的用例

此源文件中,有两个类:tcp_connectiontcp_server。我认为我选择了相关的代码,但您可能需要参考完整的源代码以获取更多信息。

class tcp_connection : public boost::enable_shared_from_this<tcp_connection>
{
public:
  typedef boost::shared_ptr<tcp_connection> pointer;

  void start()
  {
    message_ = make_daytime_string();

    boost::asio::async_write(socket_, boost::asio::buffer(message_),
        boost::bind(&tcp_connection::handle_write, shared_from_this()));
  }
};

class tcp_server
{    
private:
  void start_accept()
  {
    tcp_connection::pointer new_connection =
      tcp_connection::create(acceptor_.get_io_service());

    acceptor_.async_accept(new_connection->socket(),
        boost::bind(&tcp_server::handle_accept, this, new_connection,
          boost::asio::placeholders::error));
  }
};
Run Code Online (Sandbox Code Playgroud)

我的问题很简单:什么将我们使用shared_from_thisbind的内参数async_write功能和使用this作为一个bind在中参数 async_accept的功能?

c++ smart-pointers boost-asio

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

在类定义中使用'this'

在其中一个Boost.Asio教程中,他们在构造函数中调用计时器上的异步等待.

Printer(boost::asio::io_service& io) : timer_(io, boost::posix_time::seconds(1)), count_(0) {
    timer_.async_wait(boost::bind(&Printer::print, this));
}
Run Code Online (Sandbox Code Playgroud)

print是由...定义的成员函数

void print()
{
    if (count_ < 5)
    {
      std::cout << count_ << std::endl;
      ++count_;

      timer_.expires_at(timer_.expires_at() + boost::posix_time::seconds(1));
      timer_.async_wait(boost::bind(&printer::print, this));
    }
}
Run Code Online (Sandbox Code Playgroud)

我不明白为什么这个print函数绑定了函数,因为print函数不带任何参数(甚至不是错误代码)

在代码示例中,这是合理的.因为所有非静态类成员函数都具有隐式this参数,所以我们需要将其绑定到函数.

但我不明白需要绑定 的功能.

有人可以开导我这个吗?

c++ boost-asio

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