我試圖用memset的一個結構元素,像這樣:在結構元素上使用memset的正確方法是什麼?
memset(&targs[i]->cs, 0, sizeof(xcpu));
但是,這樣做讓我分割故障。我不明白爲什麼這是失敗的,也不知道如何讓它工作。 在結構的元素上使用memset的正確方法是什麼?爲什麼我的方法不起作用?
線,其分配用於targs存儲器:
eargs **targs = (eargs **) malloc(p * sizeof(eargs *));
結構定義爲結構體元件Cs(xcpu_context)和struct targs(execute_args):
typedef struct xcpu_context {
unsigned char *memory;
unsigned short regs[X_MAX_REGS];
unsigned short pc;
unsigned short state;
unsigned short itr;
unsigned short id;
unsigned short num;
} xcpu;
typedef struct execute_args {
int ticks;
int quantum;
xcpu cs;
} eargs;
不要在C程序中從'malloc()'強制返回值。 – 2012-03-08 00:14:45
初始化* targs的代碼在哪裏? – 2012-03-08 00:17:20
@HansPassant - 它不在那裏,可能是這個問題。 – 2012-03-08 00:19:20