小编Avi*_*ash的帖子

memcpy和指针

我很困惑如何使用memcpy读取数组中复制的指针.以下是我尝试过的,但不起作用.

基本上,我已经分配了内存块,我在其中复制类似于数组时尚的指针,但在重试期间它无法正常工作.虽然这适用于基本数据类型

我想在element块中存储任何东西,它可以是integers或者pointers.

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

#define INDEX(x)  ((char *)elements + (sizeof(int*) * (x)))
int size = 10;

void f2_int_ptr() {    
    int i = 0;
    void *elements = (void*)malloc(size * sizeof(int*));
    for ( i = 0; i < size; i++ ) { 
       int *v = ( int *) malloc ( sizeof(int));
       memcpy ( v, &i, sizeof ( int ));


       memcpy ( INDEX(i) , v,  sizeof (int*));
    }
    for ( i = …
Run Code Online (Sandbox Code Playgroud)

c memcpy

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

分区问题

我有一组非唯一的数字,并希望将这些数字划分为K分区,使得每个分区中的数字总和几乎相等.假设我有以下设置.

{1, 2, 3, 4, 5, 6, 7, 8, 9}
Run Code Online (Sandbox Code Playgroud)

使用线性分区算法我得到以下分区K = 3

{ 1  2  3  4  5 }
{ 6  7 }
{ 8  9 }
Run Code Online (Sandbox Code Playgroud)

这是预期的,但由于这是线性分区算法,输入集顺序的任何改变也将改变分区,我想避免.

应最小化每个分区的元素总和的差异.在每个分区是上述例子中求和15,13,17

对于以下输入它不起作用.

{10, 20, 90, 100, 200}
Run Code Online (Sandbox Code Playgroud)

线性分区算法给我以下

{ 10  20  90  100 }
{ 200 }
Run Code Online (Sandbox Code Playgroud)

但正确的答案应该是

{ 10, 200 } { 20, 90, 100 }

algorithm

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

如何在Perl XS中将数组传递给C函数?

如何通过引用C XS模块传递Perl数组?

my @array = ( 1..20 );

XSTEST::test_array_passing(\@array);
Run Code Online (Sandbox Code Playgroud)

我在XS中做什么让它看到阵列?

perl xs

10
推荐指数
2
解决办法
2670
查看次数

C [void*]中的通用数据类型

您好我正在尝试使用void*作为C中的通用数据类型.我想要的是一种机制,使用它我可以存储任何东西并得到任何东西.我写了一些代码,但在最后一种情况下失败了.任何人都可以看看代码,如果您有任何其他想法,请告诉我.

我知道我要存储的是什么,所以在那一点上我知道数据类型,但在重审期间我只知道起始地址和大小.

这是代码:

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


static void store( void *destination, void *source, size_t size ) {
    memcpy ( (char*)destination, source, size);
}
static void retrieve ( void *destination, void *source, size_t size) {
    memcpy ( destination, (char*)source, size);
}

void *storage_char_ptr = (void*) malloc ( sizeof( char* ));
void *storage_int_ptr  = (void*) malloc ( sizeof(int*));
void *storage_int      = (void*) malloc ( sizeof( int));

int main() {

    int int_in = 65;
    void *int_out_ptr;
    int *ptr …
Run Code Online (Sandbox Code Playgroud)

c

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

什么是工会?

最近我的工作窗口,我发现很多数据结构的定义structunion成员变量.这样的例子将EVT_VARIANT在Windows中.

我不明白这背后的目的是什么.

c c++

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

Java String.split内存泄漏?

我发现使用String.substring已知与内存相关的问题String.split.

使用中是否存在内存泄漏String.split

如果是的话,它的解决方法是什么?


以下链接显示了Java中子字符串的正确用法.

http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4513622


还有一篇博客讨论子串中可能的MLK.

http://nflath.com/2009/07/the-dangers-of-stringsubstring/

java memory-leaks

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

多维矢量初始化

我有以下std::vector声明:

std::vector<std::vector<std::vector<int> > > m_input;

我正在初始化它如下:

    m_input.resize (100);
    m_output.resize(100);
    for (int i = 0; i < 100; ++i) {
        m_input [i].resize(100);
        m_output[i].resize(100);
        for (int j = 0; j < 100; ++j){
            m_input [i][j].resize(100);
            m_output[i][j].resize(100);
        }
    }
Run Code Online (Sandbox Code Playgroud)

如何通过成员初始化列表实现此目的?

c++ stl initialization vector

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

错误C2678:binary'=':找不到运算符,它接受类型为'const std :: string'的左手操作数(或者没有可接受的转换)

我真的很困惑为什么我得到以下编译错误.Microsoft Visual Studio编译器.

error C2678: binary '=' : no operator found which takes a left-hand operand of type 'const std::string' (or there is no acceptable conversion)

#include <stdio.h>
#include <iostream>
#include <sstream>
#include <iterator>

class MyException {
public:
    MyException(    std::string message, 
                        int line = 0) : m_message(message),
                                        m_line(line) {}
    const char* what() const throw(){
        if ( m_line != 0 ) {
            std::ostringstream custom_message;
            custom_message << "Parsing Error occured at ";
            custom_message << m_line << " Line : ";
            custom_message << …
Run Code Online (Sandbox Code Playgroud)

c++ visual-studio

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

为什么STRACE显示EAGAIN(资源暂时不可用)

以下是我得到的顺序

socket(PF_INET, SOCK_STREAM, IPPROTO_IP) = 7

    setsockopt(7, SOL_TCP, TCP_NODELAY, [1], 4) = 0
    setsockopt(7, SOL_SOCKET, SO_SNDBUF, [32120], 4) = 0
    getsockopt(7, SOL_SOCKET, SO_SNDBUF, [30064835312], [4]) = 0
    setsockopt(7, SOL_SOCKET, SO_SNDBUF, [64240], 4) = 0
    getsockopt(7, SOL_SOCKET, SO_SNDBUF, [30064899552], [4]) = 0
    stat("/etc/localtime", {st_dev=makedev(8, 1), st_ino=229001, st_mode=S_IFREG|0644, st_nlink=1, st_uid=0, st_gid=0, st_blksize=4096, st_blocks=8, st_size=265, st_atime=2013/07/15-06:30:03, st_mtime=2012/06/25-23:46:43, st_ctime=2012/06/25-23:46:43}) = 0
    write(1, "[info 2013/07/16 05:53:24.622210"..., 114) = 114
    setsockopt(7, SOL_SOCKET, SO_RCVBUF, [32120], 4) = 0
    getsockopt(7, SOL_SOCKET, SO_RCVBUF, [30064835312], [4]) = 0
    setsockopt(7, SOL_SOCKET, …
Run Code Online (Sandbox Code Playgroud)

linux tcp strace

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

WiX自动文件包含

有没有办法根据目录结构自动包含文件?

我不想用文件Id选项卡添加每个文件名.

我的构建过程创建了所需的目录结构:

ProductName
           Directory1
           Directory2
           Directory3
           Directory4
Run Code Online (Sandbox Code Playgroud)

如何添加这些目录及其子目录?

wix paraffin

8
推荐指数
2
解决办法
6629
查看次数

标签 统计

c ×3

c++ ×3

algorithm ×1

initialization ×1

java ×1

linux ×1

memcpy ×1

memory-leaks ×1

paraffin ×1

perl ×1

stl ×1

strace ×1

tcp ×1

vector ×1

visual-studio ×1

wix ×1

xs ×1