teratail header banner
teratail header banner
質問するログイン新規登録
C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

Q&A

解決済

1回答

809閲覧

c言語 線形リストについて

jhon

総合スコア2

C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

1グッド

0クリップ

投稿2022/02/24 09:03

編集2022/02/24 09:08

1

0

線形リストを作り、そのリストの内容をすべて表示させるlistPrint関数を作ったのですが、30,20,10と表示したいところが40,40,40となってしまいました。
色々調べておそらくprintf関数の引数がおかしいのかなと思います。

なにが間違えているか教えていただけませんか?
正しいソースコードは自分で考えて書きたいのでヒントだけ教えてもらいたいです.

#include <stdlib.h> #include <stdio.h> typedef struct s_list { struct s_list *next; void *data; } t_list; t_list *ft_create_elem(void *data) { t_list *list; list = (t_list*)malloc(sizeof(t_list)); //listにt_listのサイズを確保 if (list == NULL) { return NULL; } else { list->next = NULL; list->data = data; return list; } } void ft_list_push_front(t_list **begin_list, void *data) { t_list *ndptr; ndptr = ft_create_elem(data); if (ndptr != NULL) { ndptr->next = *begin_list; *begin_list = ndptr; } } void listPrint(t_list *list) { while (list != NULL) { printf("%d\n",*(int*)list->data); list = list->next; } } int main() { t_list *list; int i; i = 10; list = NULL; while (i <= 30) { ft_list_push_front(&list,&i); i += 10; } listPrint(list); return 0; }
Bearded-Ockham👍を押しています

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

BeatStar

2022/02/24 09:39

> 正しいソースコードは自分で考えて書きたいのでヒントだけ教えてもらいたいです. それなら「デバッグ」しましょう。 「C言語 デバッグ」とかでggればいくらでも出てきます。 プログラミングは「こう書けばいい」ってものではありません。デバッグも含みます。
jhon

2022/02/24 10:13

言葉は聞いたことあるけど使ったことなかったので調べてみます! ありがとうございます
guest

回答1

0

ベストアンサー

そのリストのdataって、みんな同じアドレスしか入れてませんねー

投稿2022/02/24 09:24

y_waiwai

総合スコア88178

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

jhon

2022/02/24 10:11

解決しました!! なぜ40になったのかも言われてみれば納得しました!! ありがとうございます
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.30%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問