這裏有相當多的問題。
首先,確保你有#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;
最後,你需要一個主要的方法。全部放在一起:
#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
。
祝你好運。