标签: buffer

C malloc 增加缓冲区大小

这是我读取http响应的代码的一部分。如果空间不足,它应该增加缓冲区大小。但我不断收到访问违规。将数据复制到新缓冲区时会发生这种情况:memcpy(tmp_alloc, rec, ResponseLength); 任何帮助/建议表示赞赏。

#define SERVER_CHUNK 1024

char *rec = new char[10000];
char in_buff[SERVER_CHUNK];
int in_sz, 
    ResponseLength = 0, 
    rec_len = 10000;

in_sz = recv(ss,in_buff,SERVER_CHUNK,0);//get the response  

while(in_sz > 0)
{           

    memcpy(rec + ResponseLength,in_buff,in_sz);
    ResponseLength += in_sz;

    if((ResponseLength + SERVER_CHUNK) > rec_len)
    {
        char *tmp_alloc = (char*) malloc (ResponseLength + SERVER_CHUNK); 
        if(!tmp_alloc)
        {   
            printf("failed to alocate memory!\n");
            break;
        }
        memcpy(tmp_alloc, rec, ResponseLength);
        free(rec);
        rec = tmp_alloc;
        rec_len = ResponseLength + SERVER_CHUNK; 
    }

    in_sz = recv(ss,in_buff,SERVER_CHUNK,0);    
}   
Run Code Online (Sandbox Code Playgroud)

c malloc buffer http

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

在 JTS 中,当我执行 geometry.buffer(1).buffer(-1) 时,生成的几何图形是否等同于原始几何图形?

我在交叉两个几何图形时遇到问题,可能是由于操作期间出现舍入错误而导致 TopologyException,然后我阅读了此修复程序并尝试了buffer(0)两个输入几何图形,但仍然没有成功。然后我尝试了geo.buffer(1).buffer(-1),它奏效了。

这些几何图形与原始几何图形相同吗?

java geometry buffer jts

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

将uint8_t*转换为char*以与QIODevice一起使用

我正在修改Qt音频输出示例,如下所示:

  • 我可以从第三方访问音频混音器API.
  • 从该混频器读取数据的方法是 void AudioMixer::ReadData(uint8_t *stream, uint32_t len);
  • 我正在改变以在示例中输出此数据的函数是 qint64 Generator::readData(char *data, qint64 len)

如果我的理解是正确的,我应该能够QIODevice通过重写Generator::readData方法来操作方法来调用AudioMixer::ReadData方法并将其uint8_t*使用的方法转换AudioMixer为a char*来使用QIODevice.

我认为这在某种程度上是可能的吗?如果是这样,有人可以建议如何进行演员表演吗?如果没有,你能解释一下如何输出uint8_t*使用QIODevice

为了完整起见,方法是:

void AudioMixer::ReadData(uint8_t *stream, uint32_t len)
{   
    if(buffer.GetMaximumReadSize() < len)
    {
        memset(stream, 0, len);
    }
    else
    {
        buffer.Read(stream, len);
    }
}
Run Code Online (Sandbox Code Playgroud)

qint64 Generator::readData(char *data, qint64 len)
{
    qint64 total = 0;
    while (len - total > 0) {
        const qint64 chunk = qMin((m_buffer.size() …
Run Code Online (Sandbox Code Playgroud)

c++ io qt buffer pointers

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

如何在一行的末尾添加问号?

我想检查一下用户是否?在缓冲区的末尾添加了一个.如果没有,我希望程序自动添加一个.这就是我到目前为止所拥有的.我不知道接下来该做什么.

首先,我检查缓冲区是否为空白.
然后,如果最后一项不是a ?,则将问号自动添加到缓冲区,然后将内容复制到当前数据节点.

if ( strlen(buffer) != 0)
{
   if (buffer[strlen(buffer)-1] != '?')
   {

           //what do i put here to add the ? if theres non?    
   }

strcpy(current->data,buffer);

}
Run Code Online (Sandbox Code Playgroud)

c c++ parsing buffer

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

OpenCV - 图像数组或Mat缓冲区

怎样,我可以在OpenCV上使用"Mat"缓冲区或图像阵列吗?

我的意思是:有一组图像,想要拿起并放入一个像这样的数组

我怎样才能做到这一点?它就像C++普通的数组风格?

 Mat images[2];

    images[0] = imread(...);
    images[1] = imread(..);
Run Code Online (Sandbox Code Playgroud)

提前致谢.

arrays buffer opencv image

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

HLSL cbuffer,制服,尺寸和偏移量

常量缓冲区,在顶点着色器源中声明

cbuffer c_buffer : register(b0)
{
    matrix <float, 4, 4> u_mvpMatrix;
    matrix <float, 4, 4> m44;
    matrix <float, 3, 3> m33;
    matrix <float, 2, 3> m23;
    matrix <float, 3, 2> m32;
    matrix <float, 1, 3> m13;
}
Run Code Online (Sandbox Code Playgroud)

用于编译着色器的命令

fxc /nologo /E main /T vs_4_0_level_9_3 /Fh vertex_bytes.h /Vn bytes
Run Code Online (Sandbox Code Playgroud)

最后,生成的vetex_output.h中的注释

// Buffer Definitions: 
//
// cbuffer c_buffer
// {
//
//   float4x4 u_mvpMatrix;              // Offset:    0 Size:    64
//   float4x4 m44;                      // Offset:   64 Size:    64 [unused]
//   float3x3 m33;                      // …
Run Code Online (Sandbox Code Playgroud)

directx buffer hlsl directx-11 offset

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

是Perl的$ | 选择合适的缓冲区?

我正在尝试快速更改文件大小并遇到文件从未使其大小合适的问题.下面的代码是否像我认为的那样运行?主要是$|操作员实际选择$fh还是选择STDOUT

# Open file, hot buffer
open(my $fh, '>>', $file_path) ||
   die 'Could not open temp file: '.$!;
$| = TRUE;

# Make file longer (div 2 because 
# we print 2 at a time)
print $fh "\r\n" x ($diff / 2);

# Wait for file system to catch
# up, then close file.
sleep 1;
close $fh;
Run Code Online (Sandbox Code Playgroud)

perl buffer

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

java中的并发读/写缓冲区byte []

我是Java的新手,我想实现byte[]一个线程可以写入的缓冲区,另一个线程可以读取.
它听起来应该已经实现了java,但我花了几个小时试图找到/理解几个类,我不明白它是否做我想要的,以及如何使用它.
我看到BufferedInputStream,ByteBuffer,ByteChannel,BlockingQueue...

有人可以指出一个更具体的方向吗?我用SDK 1.6

java multithreading buffer byte

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

Char指针等于缓冲区加缓冲区大小?

有人可以向我解释这段代码吗?或者确认一下我的看法?

char *buffer 分配给指向 "Hello World\0"
并且buffer_size是12.

所以:

char *var = buffer + buffer_size - 1;

现在*var指向'd'"Hello World",对不对?

c c++ buffer pointers

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

为什么这个字符串不会溢出缓冲区?

我在mac和linux上运行了这段代码:

#include <stdio.h>
#include <string.h>

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

    int value = 5;
    char buffer_one[8], buffer_two[8];

    strcpy(buffer_one, "one");
    strcpy(buffer_two, "two");

    printf("[BEFORE] buffer_two is at %p and contains \'%s\'\n", buffer_two, buffer_two);
    printf("[BEFORE] buffer_one is at %p and contains \'%s\'\n", buffer_one, buffer_one);
    printf("[BEFORE] value is at %p and is %i (0x%08x)\n", &value, value, value);

    printf("\n[STRCPY] copying %i bytes into buffer two\n\n", strlen(argv[1]));
    strcpy(buffer_two, argv[1]); 

    printf("[AFTER] buffer_two is at %p and contains \'%s\'\n", buffer_two, buffer_two);
    printf("[AFTER] buffer_one is at %p and …
Run Code Online (Sandbox Code Playgroud)

c buffer

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

标签 统计

buffer ×10

c ×4

c++ ×3

java ×2

pointers ×2

arrays ×1

byte ×1

directx ×1

directx-11 ×1

geometry ×1

hlsl ×1

http ×1

image ×1

io ×1

jts ×1

malloc ×1

multithreading ×1

offset ×1

opencv ×1

parsing ×1

perl ×1

qt ×1