小编use*_*478的帖子

有人可以解释Python结构解包吗?

我有一个由C结构构成的二进制文件,我想在Python中进行解析.我知道二进制文件的确切格式和布局,但我对如何使用Python Struct解包来读取这些数据感到困惑.

我是否必须遍历整个二进制文件,根据结构的成员一次解包一定数量的字节?

C文件格式:

typedef struct {
  int data1;
  int data2;
  int data4;
} datanums;

typedef struct {
  datanums numbers;
  char *name;
 } personal_data;
Run Code Online (Sandbox Code Playgroud)

让我们说二进制文件具有一个接一个地重复的personal_data结构.

python binary parsing struct

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

如何从数组中的每个元素创建对象?

我有一个带有新构造函数的模块:

package myClass;

sub new
{
    my $class = shift;
    my $arrayreference = shift;
    bless $arrayreference, $class;
    return $arrayreference;
};
Run Code Online (Sandbox Code Playgroud)

我想做的事情如下:

foreach $ref (@arrayref)
{
     $array1 = myClass->new($ref);
}
Run Code Online (Sandbox Code Playgroud)

$array1每当被改写,但我想要的阵列中的每个元件具有不同的对象名称(如$array1,$array2,$array3等等)

arrays perl module reference

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

如何在perl中乘以两个以上的矩阵?

我发送了一系列参考文献,这是我的子程序:

sub multiply
{
    my @product;

    my $ref1 = $_[0];
    my $ref2 = $_[1];

    my @array1 = @$ref1;
    my @array2 = @$ref2;


    }
    my ($rowsA,$columnsA) = &dimensions(@$ref1);
    my ($rowsB,$columnsB) = &dimensions(@$ref2);

    for $i (0..$rowsA-1){
    for $j (0..$columnsB-1){
            for $k (0..$columnsA-1){
                    $product[$i][$j] += $array1[$i][$k] * $array2[$k][$j];
            }
    }
 }
Run Code Online (Sandbox Code Playgroud)

此子例程适用于两个参数,但如何在发送两个以上参数时将矩阵相乘?

arrays parameters perl reference

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

在分配指针时,memcpy与仅分配之间有什么区别?

例如,我有以下指针:

char *ptr;
char *string;

string = malloc(sizeof(char) * 10);
//set string to some word
Run Code Online (Sandbox Code Playgroud)

以下几行有什么区别?

ptr = string;

vs.

memcpy(ptr, string, sizeof(string));
Run Code Online (Sandbox Code Playgroud)

此外,如果我尝试在这些任务中的任何一个之后释放"字符串",是否会出现问题?"ptr"仍会保留我指定给它的值吗?

c pointers variable-assignment

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

文件中的全局静态变量是否与函数中的局部静态变量相当?

我知道声明一个全局变量,因为STATIC会使它对当前文件可见.每次在文件中调用函数时,变量是否保留其数据?

例如,

假设一些文件调用下面的func1(),它修改静态全局变量数据,然后调用func2()再次修改它.

下次文件调用func1()时,它是否会修改新的数据变量struct?或者它会保留先前调用中修改的先前数据吗?

STATIC MY_DATA  Data1;

void func1( ){
   //modify Data1
   func2(Data1);
}

void func2 (MY_DATA data){
    // modify data 
}
Run Code Online (Sandbox Code Playgroud)

c variables static global

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