私はポインタとCの構造体に問題があります(私は知っています、私はかなり基本的です)!私は私の手続きパラダイムを練習していました。デバッガを使用するのは初めてのことです。なぜなら私はそれが以前の私の人生ではそれほど必要ではなかったからです。<私はあなたを助けてくれて感謝しています。Cのポインタの問題
私は、リストを作るために、以下の構造を定義した:
int main(int argc, char** argv) {
node_t * list = NULL;
addNodo(list, 1);
printf("x: %d", list->info);
return (EXIT_SUCCESS);
}
:これをやって、その後、
void addNodo(node_t * list, int x){
node_t * pointer;
node_t * temp;
temp = (node_t *)malloc(sizeof(node_t));
temp->info = x;
temp->next = NULL;
temp->prev = NULL;
pointer = list;
if(pointer == NULL){ //it's empty so start it
list = temp;
return;
}
if (pointer->info <= x) { //I like my lists tidy so...
while((pointer->next != NULL) && (pointer->info <= x)){
pointer = pointer->next;
}
if(pointer->next == NULL){
pointer->next = temp;
temp->prev = pointer;
return;
}
pointer->next->prev = temp;
temp->next = pointer->next;
temp->prev = pointer;
pointer->next = temp;
return;
}
}
そして:
typedef struct node {
int info;
struct node *next;
struct node *prev;
} node_t;
そして、この関数はそれを埋めるためにそれは私にセグメンテーションエラーを投げている!私がそれをデバッグすると、++++の行を渡すまで、すべてが楽しくゲームが行われます。リストのアドレスは0x0に戻り、動作させることはできません。私はどこかにエラーがあることを知っていますが、私のポインタの知識には、それは完璧です。私のエラーを検出して、私に指針を教えてください。
nodo_tとは – TimFoolery