0

这是我的代码,请帮助我!我正在使用 xcode .. 我想为多项式生成一个序列,并且这些项被异或并反馈到第一个输入位,因为它是 8 位,它完成了 2^8-1 次。备用代码也将是有帮助 在此先感谢

#include "32bit.h"
#include<iostream>

using namespace std;
int main()
{
    bool input[8];
    int n;
    bool out=0;
    cout<<"Enter the no of terms ";
    cin>>n;
    int temp1[n];
    int gen=0;
    bool store[255];
    cout<<"Input power of x in increasing order, Omit x^0";


    for(int i=0;i<n;i++)
        cin>>temp1[i];
    cout<<"Enter key to generate ";
    cin>>gen;
    for(int m=0;m<255;m++)
    {
        store[m]=input[gen];
        bool temp2[n];
        int var=0;
        for(int j=0;j<n;j++)
        {

            var=temp1[j];
            temp2[j]=input[var];
        }
        int c=0;
        for(int k=0;k<n;k++)
        {
            if(temp2[k]%2==1)
                c++;

        }
        if(c%2==1)
            out=1;
        else
            out=0;
        for(int l=0;l<8;l++)
            input[l+1]=input[l];
        input[0]=out;
    }
    for(int p=0;p<255;p++)
        cout<<store[p];
}
4

1 回答 1

0

这里有一个越界数组访问:

    for(int l=0;l<8;l++)
        input[l+1]=input[l];

因为input只有大小 8 并且您试图在此循环的最后一次迭代中写入input[8](即不存在的第 9 个元素)。我猜应该是:

    for(int l=0;l<7;l++)
        input[l+1]=input[l];
于 2013-07-24T06:42:17.953 回答