繁体   English   中英

使用指向结构数组的指针的参数类型无效

[英]Invalid type of argument using pointer to struct array

我的下一个代码有问题,我收到错误:一元'*'的无效类型参数(有'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;
}

我必须从指针到poninters再到struct数组,这段代码是一个例子,因为原始代码有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;
}

使用*((ptab->content)+pC1+17) ,更简单的说法是ptab[pC1+17].content [后者编译并产生 22 作为输出]。 你的意思是ptab->content + pC1 + 17 [产生 5]?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM