我爲測試做了這個方法,由於某種原因malloc不工作。當我評論它它確實有用,但否則它只會說程序已停止工作。Malloc執行錯誤
typedef struct {
int NroUSP; // chave primária
int curso;
int estado;
int idade;
bool valido; // para exclusão lógica
} REGISTRO;
typedef struct s {
int NroUSP; // chave primária
int curso;
int estado;
int idade;
bool valido;
struct s* prox;
} NO;
typedef struct {
NO* inicio;
} LISTA;
這些都是我用^
編輯結構:問題是,這個星號權利之前AUX
void ex6(){
REGISTRO* aux;
FILE *arq = fopen("C:\\Users\\jujuc_000\\Desktop\\Teste\\dados.bin","rb");
FILE *arq2 = fopen("C:\\Users\\jujuc_000\\Desktop\\Teste\\ex6.bin","wb");
LISTA l;
l.inicio = NULL;
NO*p = (NO*)malloc(sizeof(NO)); // this is the test malloc
if(arq){
while(1==fread(&aux,sizeof(REGISTRO),1,arq)){
/*p = (NO*)malloc(sizeof(NO)); // this is the one I want to keep
p->NroUSP = aux->NroUSP;
p->curso = aux->curso;
p->estado = aux->estado;
p->idade = aux->idade;
p->valido = aux->valido;
if(!l.inicio){
l.inicio = p;
}
p=p->prox;*/
}
}
fclose(arq);
fclose(arq2);
}
「NO」的定義在哪裏?另外,不要投malloc:http://stackoverflow.com/questions/1565496/specifically-whats-dangerous-about-casting-the-result-of-malloc。這很危險。 – rost0031
它是否在'malloc'或'p = p-> prox'失敗? – Dinesh
它不起作用?如果有錯誤信息,請將其包含在問題中。 –