大家好, 从上面的图像。 我能够编译,但程序在运行时崩溃。 请告诉我解决这个问题的决议是什么? 谢谢
// structArray.h:
#ifndef __STRUCTARRAY_H_
#define __STRUCTARRAY_H_
typedef struct _vector{
int* str;
int maskSize;
// etc...
}__attribute__((__packed__)) _vector_t;
#endif /* _STRUCTARRAY_H_ */
**// do_structArray.c**
#include "structArray.h"
extern struct _vector_t t;
void do_structArray (void) {
int plaintext[2] = {0x05, 0x08};
_vector_t t[] = {
{plaintext, sizeof(plaintext)},
//{},
};
printf("Content: \n%x \n", t[1].str[1]);
}
// main : just calling do_structArray
#include <stdio.h>
#include <stdlib.h>
#include "structArray.h"
extern struct _vector_t t;
int main(int argc, char *argv[]) {
do_structArray();
system("PAUSE");
return 0;
}
答案 0 :(得分:4)
您正在访问t[1]
但t
中只有一个项目。试试printf("Content: \n%x \n", t[0].str[1])
。
答案 1 :(得分:3)
数组索引从C中的0开始。您正在访问超出数组末尾的数组元素。将索引更改为0:
printf("Content: \n%x \n", t[0].str[0]);