我将PBC库用于项目,我尝试使用element_t
数组,存储一些数据。
当我尝试将segmentation fault
复制到数组中时,在使用gdb
进行调试时出现element_t
错误。
这是一个MWE:
using namespace std;
#include <stdio.h>
#include <iostream>
#include <iomanip>
#include <pbc.h>
#include <pbc_test.h>
int main(int argc, char **argv) {
const int t = 2;
const int n = 3;
element_t r[t];
element_t s[n];
pairing_t pairing;
element_t P, s0, P0;
pbc_demo_pairing_init(pairing, argc, argv);
cout<<"SETUP STAGE"<<endl;
element_init_G1(P, pairing);
element_random(P);
element_printf("P = \t%B\n", P);
/* Build the table with each element is r_i */
element_t r_i;
for (int i = 0; i < t; i++)
{
element_init_Zr(r_i, pairing);
element_random(r_i);
/* Put r_i into the array */
element_set(r[i], r_i); // <--- segmentation fault here
element_clear(r_i);
}
/* Set s = r0 */
element_init_Zr(s0, pairing);
element_random(s0);
/* Put it in the first place in the vector of all si */
element_set(s[0], r[0]);
/* Compute P = s*P0 */
element_mul_zn(P0, P, s0);
element_printf("P0 = %B\n", P0);
element_clear(P);
pairing_clear(pairing);
return 0;
}
我认为这是错误:
Program received signal SIGSEGV, Segmentation fault.
0x000000000002721f in ?? ()
有没有人尝试将element_t
放入数组?
答案 0 :(得分:0)
正如评论中所讨论的,错误来自于version: '2'
services:
web:
build: .
ports:
- "4000:4000"
volumes:
- .:/app
depends_on:
- db
db:
image: postgres:9.4.8
这是MWE更正,有效:
element_t