Ich verwende die PBC Bibliothek für ein Projekt, und ich versuche, eine element_t
Array, wo einige Daten zu speichern.Segmentierungsfehler in element_t Array
Ich bekomme eine segmentation fault
Fehler beim Debuggen mit gdb
, wenn ich versuche, ein element_t
in das Array zu kopieren. Hier
ist ein 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;
}
ich dies als eine Fehlermeldung anzeigt:
Program received signal SIGSEGV, Segmentation fault.
0x000000000002721f in ??()
Wie jemand schon versucht Putting element_t
s in Arrays?
ich nicht über diese Bibliothek wissen aber wo ist " n "definiert? – user1754322
Entschuldigung, ich habe diese Zeile beim Kopieren vergessen. Es ist eine ganze Zahl, gleich wie t. – EisenHeim
Ich rate, dass 'element_t' initialisiert werden muss. Wenn dies der Fall ist, sollte die Initialisierung mit 'element_t r [t] = {}' Ihr Problem lösen. –