色々試してみましたが全くわかりませんでした。
何が原因のエラーなのでしょうか?
また、どのように修正すればよいのでしょうか?
エラーメッセージの一部です。
(.fini+0x0): `_fini' が重複して定義されています
/usr/bin/ld: /usr/lib/debug/usr/lib/x86_64-linux-gnu/crti.o(.debug_info): 再配置 0 が無効なシンボル索引 7 を持っています
/usr/bin/ld: /usr/lib/debug/usr/lib/x86_64-linux-gnu/crti.o(.debug_info): 再配置 1 が無効なシンボル索引 8 を持っています
#include <stdio.h>
#include <stdlib.h>
typedef struct node
{
char moji;
struct node *next;
} NODE;
NODE head;
int
main ()
{
char n;
char del;
NODE *p;
NODE *cur;
NODE *pcur;
NODE *new;
head.next = NULL;
cur = &head;
do
{
scanf ("%c%*c", &n);
if (n == '-')
continue;
new = (NODE *) malloc (sizeof (NODE));
if (new == NULL)
{
printf ("malloc error\n");
return 0;
}
cur->next = new;
new->moji = n;
new->next = NULL;
cur = new;
printf("n='%c'\n",n);
}
while (n != '-');
printf("消したい文字を入力");
scanf("%c%*c", &del);
for(cur = &head; cur->next != NULL; cur = cur->next;){
if(cur->next->moji == del){
p = cur->next;
cur->next = cur->next->next;
}
}
cur = head.next;
while (cur != NULL)
{
printf ("%c\n", cur->moji);
cur = cur->next;
}
while(1) {
cur = head.next;
pcur = &head;
while( cur->next != NULL )
{
pcur = cur;
cur = cur->next;
}
free(cur);
pcur->next = NULL;
if( head.next == NULL ) break;
}
return 0;
}
A 回答 (8件)
- 最新から表示
- 回答順に表示
No.8
- 回答日時:
>メモリリークということはmallocでメモリ確保しなければいけないということでしょうか?
malloc()で確保したメモリ、どこで解放しています?
特に最初のループで確保した『複数の』メモリブロックを。
ループ2回目以降のmalloc()が失敗したときも盛大にリークしてますけどね。
# まぁ、そのあとプロセス終了するのでまともなOSであれば問題にはなりませんけど…行儀がいいとは言えませんね。
No.7
- 回答日時:
とりあえず, どのようにコンパイルしたのかを「正確に」書いてください.
「gcc -o 名前.c 名前 といった感じです」
のように曖昧にするのではなく, ね.
No.4
- 回答日時:
ついでに…エラーメッセージの一部でWeb検索すると…
http://stackoverflow.com/questions/10056724/link …
なんてのがヒット。
gccへのオプション指定とか間違っていませんか?
No.3
- 回答日時:
似たような質問を最近見たような気がしますが…。
>for(cur = &head; cur->next != NULL; cur = cur->next;){
の行でコンパイルエラーが指摘され、
指摘されているエラーを解消したら正常にビルドできましたよ。
CentOS7.xにて。
実行結果は期待通りにはなりませんでしたが。
# ってか、書かれている通りならメモリリークしますけど
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# c言語の問題です 3 2023/01/10 16:15
- 大学・短大 C言語線形リストの問題です 3 2022/12/22 00:45
- C言語・C++・C# c言語の問題の説明、各所ごとに 5 2023/07/26 11:03
- C言語・C++・C# leetcode21 1 2022/04/21 11:53
- C言語・C++・C# プログラミングの授業の課題です 1 2023/01/17 22:15
- C言語・C++・C# バイナリファイルをコピーするのにかかる時間を測りたいのですが実行するとFatel error:gli 2 2022/11/03 01:10
- その他(プログラミング・Web制作) 十進BASICでの再帰についての質問です。 2 2022/11/18 09:17
- Visual Basic(VBA) ExcelVBAに関する質問 3 2023/02/17 10:47
- C言語・C++・C# C言語 leetcode21 Merge Two Sorted Lists 2 2022/04/24 19:35
- Visual Basic(VBA) 実行時エラー´5854´ 文字列型パラメーターが長すぎます。 3 2023/06/08 21:17
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
c++ 両側からDequeueできるキュ...
-
線形リスト(C言語)
-
c言語のリダイレクトによる円...
-
吸湿性のあるものを天秤で秤量...
-
2÷3などの余りについて
-
プログラミング初心者です。 Py...
-
printf で二進表示を行いたい。
-
マイナスからプラスへ転じた時...
-
【C言語教えてください】sin波...
-
O(n log n)について2
-
エクセルのクイックアクセスツ...
-
「Aに対するBの割合」と「Aに対...
-
プログラムで関数は使わない方...
-
コンパイルエラーについて
-
hit&bolwのプログラミングがで...
-
課題でつまってます・・・
-
Python: 数値を反転させたい
-
未解決の外部シンボル _printf...
-
既定のコンストラクタがありま...
-
系列推理
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
構造体のリスト削除
-
InvokeMemberメソッドとは何を...
-
C言語 dequeue
-
C言語 リスト
-
C言語
-
C# ref引数のnull判定
-
ばばぬきプログラムについて
-
双方向リストのバブルソートに...
-
API 録音 MCI
-
ご教授ください。Segmentation ...
-
C♯ 2段構造のcontextMenuStrip?
-
コールバック関数はnullになら...
-
連結リストをソート
-
今度はdoubly linked listの問...
-
リスト構造
-
バブルソートを使って文字列を...
-
【C++】ストリームオブジェクト...
-
C言語 二分木探索
-
「Nz」は何て読むのでしょうか?
-
別formの多重起動防止
おすすめ情報
linux でコンパイルしています。
gcc -o 名前.c 名前 といった感じです。
メモリリークということはmallocでメモリ確保しなければいけないということでしょうか?
エラー内容は重複して定義と無効なシンボルと書いてあります。