这里有很多问题。
首先,确保您的文件中有#include <stdint.h>,因为某些平台会出现 uint8_t 问题。
其次,当你创建一个结构指针时,你必须为那个结构分配空间。这可以通过以下代码完成:
myStruct *pmyStruct = malloc(sizeof(struct myStructType));
正如其他人所提到的,您在初始化数组时只能使用{1,2,3...}。因此,要将元素添加到数组中,您需要:
for (int i = 0; i < 6; i++)
pmyStruct->myArray[i] = i+1;
当你有一个结构指针时,你可以使用-> 操作数访问它的元素。所以,你的最后一行是:
pmyStruct->x=3;
最后,您需要一个 main 方法。把它们放在一起:
#include <stdlib.h>
#include <stdint.h>
typedef struct myStructType {
uint8_t myArray[6];
uint8_t x;
}myStruct;
int main()
{
myStruct *pmyStruct = malloc(sizeof (struct myStructType));
for (int i = 0; i < 6; i++)
pmyStruct->myArray[i] = i+1;
pmyStruct->x=3;
return 0;
}
完成所有操作后,请务必使用free(pmyStruct); 释放分配的空间并注意大小写! pmystruct 与 pmyStruct 不同。
祝你好运。