c++初学者技术问题

这里的vs有一个报错说count不是一个可以改变左值。但是我之前使用的时候就不没有这个报错。这里是为什么,求指点。
代码在此

img

#include<sm.h>
int check(double **p)
{
    int count=0;
    for (int i = 0; i < x; i++)
    {
        for (int j = 0; j < x; j++)
        {
            if (p[i + 1][j + 1] == 0 && i + 1 < 10 && j + 1 < 10)
                count++;
            if (p[i + 1][j] == 0 && i + 1 < 10)
                count++;
            if (p[i + 1][j - 1] == 0 && i + 1 < 10 && j - 1 > 0)
                count++;
            if (p[i][j + 1] == 0 && j + 1 < 10)
                count++;
            if (p[i][j + 1] = 0 && j + 1 < 10)
                count++;
            if (p[i - 1][j] == 0 && i - 1 < 10)
                count++;
            if (p[i - 1][j - 1] == 0 && i - 1 < 10 && j - 1 < 10)
                count++;
            if (p[i - 1][j + 1] == 0 && i - 1 < 10 && j + 1 < 10)
                count++;


            if (count >= 7 && p[i][j] == 1)
                p[i][j] = 0;
            if (count == 6 || count == 7 && p[i][j] == 1)
                p[i][j] = 0;
            if (count >= 4 && p[i][j] = 1)
                p[i][j] = 0;
            if (count == 3 && p[i][j] = 0)
                p[i][j] = 1;
            if (count != 3 && p[i][j] = 0)
                p[i][j] = 0;



        
    }
    }
    
}

img

#include<ctime>
#include<sm.h>
#include<stdlib.h>
#include<iostream>

using namespace std;

int main()
{
    double **p=NULL;
    cin >> x;
    p = new double *[x];
    for (int i = 0; i < x; i++)
    {
        p[i] = new double[x];
    }
    for (int i = 0; i < x; i++)
    {
        for (int j = 0; j <x;j++)
        {
            {
                p[i][j] = rand()%2;
                int check(p[i][j]);
                cout << p[i][j];

            }
        }
        cout << endl  ;
    }

}


img

if (count >= 4 && p[i][j] = 1)
应该是
if (count >= 4 && p[i][j] == 1)
下面几个类似