我正在使用GMP,我需要一个数组mpz_t.sizeof(mpz_t)给出了16,但是我存储的数字要大得多.是否mpz_t"到位"增长,即我是否需要分配更多内存并允许就地增长,或者GMP是否在其他地方为其分配空间并保留引用(在这种情况下,我假设,我不会必须采取任何特殊的预防措施.)
是的,你可以声明一个数组mpz_t.它在GMP信息页面中明确提到:
mpz_t vec[20];
Run Code Online (Sandbox Code Playgroud)
如果查看头文件,则将mpz_t指针(_mp_d)保存到"肢体"数组中,该数组通过常规方法动态分配和调整大小.
至于怪异,当然:
typedef __mpz_struct mpz_t[1];
Run Code Online (Sandbox Code Playgroud)
在GMP 5.1.3中,a mpz_t是一个单元素数组__mpz_struct,因此声明一个元素可以正常工作.但是,只有一个指针传递给函数调用.其实很好的伎俩.
| 归档时间: |
|
| 查看次数: |
1334 次 |
| 最近记录: |