• [解決済み] 多次元配列の正しい配置方法

    質問 この問題の意図は、C言語で多次元配列を動的に正しく割り当てる方法についての参考文献を提供することです。これはしばしば誤解され、いくつかのC言語プログラミングの本でさえ十分に説明されていないトピックです。そのため、経験豊富な C 言語プログラマーでさえも、正しく理解するのに苦労しています。 私はプログラミングの先生/本/チュートリアルから、多次元配列を動的に割り当てる正しい

    2023-04-22 23:54:13
  • [解決済み] FFIを使用してCの文字列をRustの文字列に変換する方法は?

    質問 C言語ライブラリから返されたC言語の文字列を、FFIを介してRustの文字列に変換しようとしています。 mylib.c const char* hello(){ return "Hello World!"; } main.rs #![feature(link_args)] extern crate libc; use libc::c_char; #[l

    2023-04-22 23:24:26
  • [解決済み] なぜGDBは予測できない行間ジャンプをしたり、変数を"<value optimized out>"と表示したりするのですか?

    質問 gdbのこの挙動を説明できる人はいますか? 900 memset(&amp;new_ckpt_info,'\0',sizeof(CKPT_INFO)); (gdb) **903 prev_offset = cp_node-&gt;offset;** (gdb) **905 m_CPND_CKPTINFO_READ(ckpt_info

    2023-04-20 10:38:28
  • [解決済み] なぜC言語の `free` は解放するバイト数を受け取らないのですか?

    質問 はっきりさせておきたいのですが、私が知っているのは malloc と free はCライブラリで実装されており、通常はOSからメモリの塊を割り当て、より小さなロットのメモリをアプリケーションに小分けするための独自の管理を行い、割り当てられたバイト数を記録しています。 この問題は free はどのようにして解放する量を知るのか . むしろ知りたいのは、なぜ free

    2023-04-20 06:04:15
  • [解決済み] C言語の不透明ポインタとは何ですか?

    質問 C言語における不透明ポインタの概念について、その使い方やロジックを教えてください。 どのように解決するのですか? 不透明ポインタとは、基礎となるデータの詳細が明らかにされていないポインタのことです(辞書の定義より。 opaque: 形容詞; 見通すことができない; 透明ではない ). 例えば、ヘッダーファイルで宣言します(これは私が実際に書いたコードの一部から引用してい

    2023-04-19 13:38:27
  • [解決済み] vim で C を使ってスペースを自動インデントする?

    質問 今までEclipseやjavaを使っていて、なんとなく甘えが出てきました。 Linux環境でC言語のコーディングをするためにvimを使い始めたのですが、vimに自動的に適切なブロックの間隔を持たせる方法はありますか? つまり、{を入力した後、次の行は2つのスペースでインデントされ、その行のリターンは同じインデントを維持し、}は2つのスペースを後ろにシフトさせるのですか? どの

    2023-04-18 20:22:25
  • [解決済み] FD_CLOEXEC fcntl()フラグは何をするのですか?

    質問 このように。 if (fcntl(fd, F_SETFD, FD_CLOEXEC) == -1) { ... とはいえ、私が読んだのは man fcntl を読んでも、それが何をするものなのかがわかりません。 どのように解決するのですか? これは close-on-exec フラグを設定し、ファイル記述子を自動的に(かつアトミックに)閉じます。 exec -フ

    2023-04-17 04:11:29
  • [解決済み] 関数ポインタ、クロージャ、ラムダ

    質問 私は今ちょうど関数ポインタについて学んでいるところですが、このテーマに関する K&amp;R の章を読んでいたとき、最初に私を襲ったのは、「あれ、これってクロージャに似てる」でした。 では、なぜ C スタイルの関数ポインタはクロージャやラムダと根本的に違うのでしょうか。私が言える限り、それは、関数を匿名で定義する慣習とは対照的に、関数ポインタがまだ定義された (名前の付いた) 関数

    2023-04-14 15:37:43
  • [解決済み] GCCの__attribute__((aligned(x)))でスタック変数がアライメントされるのか?

    質問 次のようなコードがあります。 #include &lt;stdio.h&gt; int main(void) { float a[4] __attribute__((aligned(0x1000))) = {1.0, 2.0, 3.0, 4.0}; printf("%p %p %p %p\n", &amp;a[0], &amp;a[1], &amp;

    2023-04-13 20:10:03
  • [解決済み] 要素検索の効率的な方法

    質問 最近、面接を受けたのですが、そこで「quot」という質問をされました。 検索 という質問をされました。 という質問がありました。 正の)整数の配列があり、その各要素は以下のいずれかであるとする。 +1 または -1 は、その隣接する要素と比較して 例 array = [4,5,6,5,4,3,2,3,4,5,6,7,8]; ここで検索するのは 7

    2023-04-12 22:40:35
  • [解決済み] gcc のオプション -fomit-frame-pointer を理解しようとしています。

    質問 の意味を教えてほしいとGoogleに依頼しました。 gcc オプション -fomit-frame-pointer を指定すると、以下の文にリダイレクトされます。 -fomit-frame-pointer フレームポインタを必要としない関数のために、フレームポインタをレジスタに保持しないようにします。これは、フレームポインタを保存、設定、復元する命令を回避します。また、

    2023-04-08 01:39:37
  • [解決済み] コンパイラはdo-whileループと他のタイプのループの間でより良いコードを生成するか?

    質問 の中にコメントがあります。 zlib 圧縮ライブラリ (Chromium プロジェクトや他の多くのプロジェクトで使用されている) にコメントがあり、C 言語の do-while ループはほとんどのコンパイラで "より良いコードを生成することを暗に示しています。以下は、そのスニペットが表示されるコードです。 do { } while (*(ushf*)(scan+=2) == *

    2023-04-02 13:13:29
  • [解決済み] C言語による文字列のパディング

    質問 StringPadRight("Hello", 10, "0") -&gt; "Hello00000" を行うはずのこの関数を書きました。 char *StringPadRight(char *string, int padded_len, char *pad) { int len = (int) strlen(string); if (len &gt;= padde

    2023-04-01 17:58:28
  • [解決済み] C言語によるJSONのパース [終了しました]。

    質問 終了しました。 この質問は Stack Overflow ガイドライン . 現在、回答を受け付けていません。 この質問を改善したいですか? 質問を更新して、それが オントピック になるように更新します。

    2023-04-01 05:18:55
  • [解決済み] Linuxカーネルはどうやって自分でコンパイルするの?

    質問 自分のマシンに Linux システムをインストールする際の Linux カーネルのコンパイル過程がよくわかりません。 をインストールする際の Linux カーネルのコンパイル プロセスがよくわかりません。 以下は、私を混乱させたいくつかの事柄です。 カーネルは C 言語で書かれていますが、コンパイラーをインストールせずにどのようにカーネルをコンパイルしたのでしょうか。 カ

    2023-03-30 21:18:21
  • [解決済み] C言語で書いたコードが自動的にGitのバージョンハッシュを出力するには?

    質問 Git のバージョン・ハッシュにアクセスする C 言語コードを書く簡単な方法はありますか? 私は実験室で科学的なデータを収集するためにC言語でソフトウェアを書きました。私のコードは、後で分析するために、収集したデータを .yaml ファイルに記録しています。私の実験は日々変化しており、しばしばコードを修正する必要があります。リビジョンを追跡するために、私は git リポジトリを使用

    2023-03-30 05:20:16
  • [解決済み] C言語でcharの文字列を修正することは可能ですか?

    質問 C言語のチュートリアルやポインタに関する本で数時間格闘していますが、私が本当に知りたいのは、一度作成したcharポインタを変更することが可能かどうかということです。 これは私が試したものです。 char *a = "This is a string"; char *b = "new string"; a[2] = b[1]; // Causes a segment fault

    2023-03-25 16:37:24
  • [解決済み] C言語の配列初期化における角括弧の意味とは?

    質問 static uint8_t togglecode[256] = { [0x3A] CAPSLOCK, [0x45] NUMLOCK, [0x46] SCROLLLOCK }; の意味は何ですか? [0x3A] はどういう意味ですか?のような文しか習ったことがありません。 int a[2] = {1, 2}; どのように解決するのですか? それは

    2023-03-25 07:34:11
  • [解決済み] dup2 / dup - なぜファイルディスクリプタを複製する必要があるのでしょうか?

    疑問点 の使い方を理解しようとしています。 dup2 と dup . man ページから : DESCRIPTION dup and dup2 create a copy of the file descriptor oldfd. After successful return of dup or dup2, the old and new descriptors may b

    2023-03-24 19:56:05
  • [解決済み] プリプロセッサ演算子##の応用と注意点とは?

    質問 以前の多くの質問で述べたように、私は K&amp;R を使って作業しており、現在プリプロセッサに取り組んでいます。より興味深いことの1つは、私が以前Cを学ぼうとしたどの試みからも決して知らなかったことですが、それは ## プリプロセッサー演算子です。K&amp;R によると プリプロセッサー演算子 ## は、マクロ展開時に実引数を連結する方法を提供します。 を連結

    2023-03-22 12:42:57