Неверный тип аргумента, использующий указатель на массив структуры

У меня проблема со следующим кодом, я получаю ошибку: неверный аргумент типа унарного ‘*’ (есть ‘int’). Если я напишу int *content это позволяет запускать код, но я должен написать int=content и измени код *((ptab->content)+pC1+17)Я пытался, но не могу исправить ошибку.

#include <iostream>
#include <cstdlib>
#include <ctime>
#include <conio.h>
#include <iomanip>
#include <stdio.h>
#include <Windows.h>

using namespace std;

struct box{
int content;
};
struct box *ptab;

int pC1=5;

int main (){
ptab=new struct box[64];

if (*((ptab->content)+pC1+17)==0) {
pC1=pC1+17;
}
cout<<pC1<<endl;
}

Я должен перейти от указателей к указателям на структурные массивы, этот код является примером, потому что исходный код имеет 23000 строк.

#include <iostream>
#include <cstdlib>
#include <ctime>
#include <conio.h>
#include <iomanip>
#include <stdio.h>
#include <Windows.h>

using namespace std;

int *box;

int pC1=5;

int main (){
box=new int[64];

if (*(box+pC1+17)==0){
pC1=pC1+17;
}
cout<<pC1<<endl;
}

-1

Решение

С *((ptab->content)+pC1+17)это проще сказать ptab[pC1+17].content [последний компилирует и выдает 22 как вывод]. Вы имели в виду это или ptab->content + pC1 + 17 [который производит 5]?

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]