• [解決済み] ビッグエンディアン、リトルエンディアンマシンを判定するCマクロの定義?

    質問 エンディアンを判定するための1行マクロ定義はありますか。私は以下のコードを使用していますが、マクロに変換すると長くなりすぎてしまいます。 unsigned char test_endian( void ) { int test_var = 1; unsigned char *test_endian = (unsigned char*)&test_var;

    2022-09-09 01:51:30
  • [解決済み] C言語のデータ型は、どのようにして「ほとんどのコンピュータで直接サポート」されるのですか?

    質問 K&Rを読んでいます。 "Cプログラミング言語" を読んでいて、こんな文章に出会いました[Introduction, p.3]。 C 言語が提供するデータ型と制御構造は、ほとんどのコンピュータで直接サポートされているため 自己充足的なプログラムを実装するために必要なランタイムライブラリはごくわずかです。 太字の意味は何でしょうか?以下のようなデータ型や制御

    2022-09-07 13:36:08
  • [解決済み] なぜこのコードは64ビットアーキテクチャでセグメンテーションされ、32ビットでは正常に動作するのですか?

    質問 次のようなC言語のパズルを見つけました。 Q: 次のプログラムは IA-64 ではセグメンテーション違反になりますが、IA-32 では正常に動作するのはなぜですか? int main() { int* p; p = (int*)malloc(sizeof(int)); *p = 10; return 0; } のサ

    2022-09-07 08:01:13
  • [解決済み] 2つのポインタを使って単一リンクリストを逆引きする方法

    質問 2つのポインタだけを使って単一リンクリストを反転させるロジックはないでしょうか。 以下は、3つのポインタを使った単一リンクリストの反転、すなわち p , q , r : struct node { int data; struct node *link; }; void reverse() { struct node *p = first,

    2022-09-07 02:45:34
  • [解決済み] C言語で文字列を宣言する方法 [重複] (英語)

    質問 この質問はすでにここに回答があります : メモリ割り当て char* と char[] (3つの答え) 終了 2 年前 .

    2022-09-06 16:26:42
  • [解決済み] C言語の現在時刻を取得する [重複] (英語)

    質問 この質問はすでにここに回答があります : Cプログラムで日付と時刻の値を取得するには? (11の回答) 終了 26 日前 .

    2022-09-06 15:48:08
  • [解決済み] GDBでスタックの内容を見るにはどうしたらいいですか?

    質問 GDBを初めて使うので、いくつか質問があります。 スタックの内容を見るにはどうしたらよいでしょうか。 例: レジスタの内容を見るには、次のように入力します。 info registers . スタックについては、それは何であるべきですか? の内容を見るにはどうしたらよいでしょうか。 $0x4(%esp) ? 私がタイプするとき print /d $0x4(%esp)

    2022-09-03 10:40:29
  • [解決済み] ある範囲から乱数を生成する方法

    質問 以前投稿した質問からの続きです。 C言語で乱数を生成する方法は? ダイスの面を模して、1~6などの特定の範囲から乱数を生成できるようにしたいのですが、どうすればよいでしょうか。 どのようにすればよいのでしょうか。 どのように解決するのですか? これまでの解答はすべて数学的に間違っています。 返すと rand() % N を返しても一様に [0, N) で

    2022-09-02 01:21:33
  • [解決済み] ポインタのアドレスとポインタの値をインクリメントするには?

    質問 仮定してみましょう。 int *p; int a = 100; p = &a; 次のコードは実際に何をどのように行うのでしょうか? p++; ++p; ++*p; ++(*p); ++*(p); *p++; (*p)++; *(p)++; *++p; *(++p); なんだかコーディングが雑になってしまいましたが、このようにコーディングすると実際にどうなるのか知

    2022-08-31 14:03:25
  • [解決済み] スレッドには個別のヒープがあるのか?

    質問 私の知る限り、オペレーティングシステムによってスレッドが作成されるとき、各スレッドは個別のスタックを取得します。私は、各スレッドがそれ自身のために個別のヒープを持っているかどうか疑問に思います。 どのように解決するのですか? いいえ。すべてのスレッドが共通のヒープを共有します。 それぞれの スレッドはプライベートスタック を持ち、そこから素早くアイテムを追加したり削除

    2022-08-31 12:02:15
  • [解決済み] Linux: ソケットからの読み込みや読み込みがタイムアウトすることはありますか?

    質問 タイムアウトしたソケットからデータを読み込むにはどうしたらよいでしょうか。 select, pselect, pollにタイムアウトフィールドがあるのは知っていますが、これらを使用するとtcp reno stackの"tcp fast-path"が無効になってしまいます。 私が持っている唯一の考えは、ループで recv(fd, ..., MSG_DONTWAIT) を使用することで

    2022-08-30 10:25:34
  • [解決済み] C言語におけるsetjmpとlongjmpの実用的な使用法

    質問 どなたか、具体的にどこが setjmp() と longjmp() 関数は、組み込みプログラミングで実用的に使用できるのでしょうか?これらはエラー処理のためにあることは知っています。しかし、私はいくつかのユースケースを知りたいのです。 どのように解決するのですか? エラー処理 多くの関数にネストされた関数の奥深くでエラーが発生し、エラー処理がトップレベルの関数

    2022-08-30 05:35:32
  • [解決済み] GDBでスタックフレームが破壊された - デバッグするには?

    質問 次のようなスタックトレースがあります。ここからデバッグに役立つものを見つけ出すことは可能でしょうか。 Program received signal SIGSEGV, Segmentation fault. 0x00000002 in ?? () (gdb) bt #0 0x00000002 in ?? () #1 0x00000001 in ?? () #2 0xbffff2

    2022-08-29 01:47:53
  • [解決済み] printf() の末尾にゼロをつけないようにする

    質問 printf()関数の書式指定子でつまずき続けています。 私が欲しいのは、小数点以下の桁数が最大で指定されたダブル(またはフロート)を表示できるようにすることです。 私が使用する場合。 printf("%1.3f", 359.01335); printf("%1.3f", 359.00999); 私は 359.013 359.010 の代わりに 359.013 359

    2022-08-26 05:49:51
  • [解決済み] なぜコンパイラーはセミコロンの欠落を報告しないのですか?

    質問 こんな簡単なプログラムがあります。 #include <stdio.h> struct S { int i; }; void swap(struct S *a, struct S *b) { struct S temp; temp = *a /* Oops, missing a semicolon here... */ *a =

    2022-08-25 17:10:57
  • [解決済み] C 言語でコンソールから行を読み取るには?

    質問 C言語のコンソールプログラムで全行を読み取る最も簡単な方法は何でしょうか。 入力されたテキストは可変長である可能性があり、その内容については何も仮定することができません。 どのように解決するのですか? 動的なメモリ管理が必要であり fgets 関数を使用して行を読み取ります。しかし、何文字読んだかを確認する方法はないようです。そこで、fgetcを使うわけです。 char

    2022-08-23 08:27:38
  • [解決済み] なぜMacよりLinuxの方がrand()が頻繁に数字を繰り返すのですか?

    質問 私が取り組んでいるプロジェクトの一部として、C言語でハッシュマップを実装し、それをテストするためにランダム挿入を使用していました。 私は以下のことに気づきました。 rand() は Mac よりもずっと頻繁に数字を繰り返しているようです。 RAND_MAX は 2147483647/0x7FFFFFFF を両プラットフォームで使用することができます。私はこのテストプログラムに縮

    2022-08-21 09:58:44
  • [解決済み] ネストされたループから抜け出すには?

    質問 もし私が break ステートメントを使用する場合、それは内側のループを壊すだけなので、外側のループを壊すために何らかのフラグを使用する必要があります。しかし、多くのネストされたループがある場合、コードは良く見えません。 すべてのループを解除する他の方法はありますか?(その際 goto stmt .) for(int i = 0; i < 1000; i++) {

    2022-08-21 08:18:35
  • [解決済み] perror("...")とfprintf(stderr, "...")はいつ使えばいいのでしょうか?

    質問 マニュアルページといくつかのコードを読んでも、- と - の違いを理解するのに役立ちませんでした。 との違いを理解することはできませんでした。 perror("...") または fprintf(stderr, "...") . どのように解決するのですか? 呼び出し perror を呼び出すと、解釈された値である errno これは POSIX システムコールによっ

    2022-08-20 20:14:44
  • [解決済み] 構造体の定義は.hと.cのどちらに書くべきですか?

    質問 の完全な定義の両方を見たことがあります。 struct の完全な定義と、単なる宣言の両方を見ました。 もし違いがあるのなら、私は通常 .h typedef struct s s_t; はっきり言って、オプションはヘッダーファイルでの宣言とクラスでの定義、またはヘッダーファイルでの宣言と定義の両方です。どちらも、たとえリンクによるものであっても、同じ使い勝手になるはずで

    2022-08-17 22:27:35