私はポインタとリンクされたリストを作成するのが初めてです。このコードは全体の一部にすぎません。私はこの部分をテストとデバッグのために簡単にしようとしましたが、それでもわかります。与えられたコードを実行した後にプロセスが終了していると誰かが理解できますか?コード実行後にプロセスが終了するのはなぜですか?処理が255を返す
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <math.h>
#define SPADE "SPADE"
#define CLUB "CLUB"
#define DIAMOND "DIAMOND"
#define HEART "HEART"
typedef struct Card{
int value;
char suit[10];
}Card;
typedef struct BagNode {
Card* card;
struct BagNode* next;
}BagNode;
int main() {
BagNode* head = NULL;
BagNode* tail = NULL;
const char* suit = SPADE;
int value = 6;
if(tail == NULL)
{
printf("add funct works\n");
BagNode* newNode = (BagNode*)malloc(sizeof(BagNode)); // allocate space
newNode->card->value = value; // assign value
strcpy(newNode->card->suit, suit); // assign value
head = newNode;
tail = newNode;
printf("added cards\n");
}
else{
BagNode* newNode = (BagNode*)malloc(sizeof(BagNode)); // allocate space
newNode->card->value = value; // assign value
strcpy(newNode->card->suit, suit); // assign suit
tail->next = newNode;
tail = newNode;
}
}
これは、出力は次のようになります。
add funct works
added cards
Process returned 255 (0xFF) execution time : 6.898 s
なぜそれが255を返していますか?
いずれの方向にも大変感謝します!
**注:私は私の推測では、あなたが
newNode->card->value
をやっている時にカードがそれほど価値は何であるNULLポインタのメンバーを割り当て、NULLポインタであるということであるC
ファイルの最後の '}'の直前に 'return 0;'を入れてみてください –