c - 如何使用结构指针变量的typedef指向同一个结构变量

标签 c pointers struct typedef

#include<stdio.h>
//This program is about structure and there pointer
//
typedef struct{
    int i;
    char c;
}str1,*strptr;

str1 str[5];
strptr *ptr;

int main(){
    ptr = &str;// This is shown as incompatible type assignment **warning**
    ptr->i=35; // **error**: request for member 'i' in something  
               //not a structure or union

    ptr->c='d';//**error**: request for member 'c' in 
                // something not a structure or union
    printf("My structure values are %d %c\n",str[0].i,str[0].c);

return 0;
}

当我运行这个程序时,出现了一个警告和两个错误。请阅读警告和错误的注释行。

我错过了什么?

最佳答案

在您的代码中,strptr 已经是一个指针类型。你需要改变

strptr *ptr;

strptr ptr;

关于c - 如何使用结构指针变量的typedef指向同一个结构变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31692897/

相关文章:

c - 在 OpenGL 中绘制对角半圆

C - 从字符串中提取单词

c - 将 char 数组传递给函数内的结构数组

ios - 更改 UIImageView 的图像不起作用

c++ - 二维数组指针 - 访问元素和地址

ios - 更新 TableView 单元格数据

c - 我想为函数指针分配内存

c - 在 enum 类型的 gtk3 中安装 style-property

c++ - 算术运算的结果如 : 1/3 in C float variable

c - 在结构中使用寄存器