小编Gau*_*rav的帖子

如何用编程语言表示二进制字段?

我正在研究我的Elliptic Curve Cryptography项目,该项目需要在二进制字段上进行编程.它包括基本运算,如加法,乘法,反演等,这是一种不可约的二元多项式.

我正在寻找一种方法,通过这种方式可以将这些二进制多项式存储在程序中.我正在研究C和C++编程语言(使用gmp库)所以我想到的第一个想法是使用结构和位字段.但它们不是动态的,不能保持任意长的多项式.使用C++ Vector STL是可能的,但它不会有效,因为它在8位或更多位的单个字中存储单个位.

是否有任何有效的表达方式?

c++ polynomial-math

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

C中的分段错误尝试使用指针交换两个值

我试图尝试在两个变量中交换值时遇到分段错误.我的代码是:

void swap(int *a,int *b){
    int *temp;
    *temp=*a;
    *a=*b;
    *b=*temp;
}
int main(){
    int i=1,j=0;
    printf("Before %d,%d\n",i,j);
    swap(&i,&j);
    printf("After %d,%d\n",i,j);
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

Before 1,0
After 0,1
Segmentation fault (core dumped)
Run Code Online (Sandbox Code Playgroud)

对我来说神秘的是在成功交换值后产生错误.什么是虫子?我需要在任何地方对指针进行类型转换吗?

c swap pointers segmentation-fault

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

fstream 不是在 C++ 中创建文件

我已经检查了几个这样的问题,比如: 链接 1链接 2

但他们的回答都没有帮助我。在调试了这么多小时后,我无法检测到错误。所以,我再次在这里问它。

我的程序的代码是:

#include<iostream>
#include<fstream>
#include<string.h>

using namespace std;

int main(){
    ofstream file;
    file.open("data.dat",fstream::out);
    file<<fflush;
    if(!file)
        cout<<"error"<<strerror(errorno);
    file.close();
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

这是处理文件处理的程序的主要部分。程序的其余部分处理一些数据并将其写入文件,我认为这既不相关也不影响文件处理。

有趣的是程序没有闪烁任何错误。

c++ file-io fstream

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