• [解決済み] 純機能のメリット

    質問 今日、純粋関数について読んでいたのですが、その使い方で混乱しました。 関数は、それが同じ入力のセットに対して同じ値のセットを返し、任意の観察可能な副作用を持っていない場合、純粋であると言われています。 例 strlen() は純粋な関数であるのに対し rand() は不純なものです。 __attribute__ ((pure)) int fun(int i)

    2023-06-17 14:39:15
  • [解決済み] 現在出力されているコンソール行を消去する

    質問 C言語で現在表示されているコンソール行を消すにはどうしたらよいでしょうか。私はLinuxシステム上で作業しています。例えば - printf("hello"); printf("bye"); helloの代わりにbyeを同じ行に表示したい。 どのように解決するのですか? あなたは VT100エスケープコード . xtermを含むほとんどの端末はVT100を意識し

    2023-06-15 10:22:33
  • [解決済み] 可変個体マクロの引数を反復処理することは可能ですか?

    質問 私は、C99 または GCC 拡張を使用して、可変長マクロに渡された引数を反復処理することが可能かどうか疑問に思っていました。 たとえば、構造体とそのフィールドを引数として受け取り、構造体内の各フィールドのオフセットを表示する一般的なマクロを書くことは可能でしょうか? このようなものです。 struct a { int a; int b; int c;

    2023-06-15 07:06:07
  • [解決済み] ダングリングポインタとメモリリークの違い

    質問 ダングリングポインタとメモリリークの違いがよくわかりません。この 2 つの用語はどのように関連しているのですか? どのように解決するのですか? A ダングリングポインタ は既に解放されたメモリを指しています。そのストレージはもう割り当てられていません。アクセスしようとすると、Segmentation faultが発生する可能性があります。 ダングリングポインタの

    2023-06-14 06:30:02
  • [解決済み] C言語で/dev/randomやurandomを使用するには?

    質問 私は /dev/random または /dev/urandom をCで処理するにはどうしたらいいのでしょうか?C言語でどのように処理すればいいのかわかりません。もし知っている人がいれば教えてください。ありがとうございます。 どのように解決するのですか? 一般に、ランダムなデータを取得するためにファイルを開くことは避けたほうがよいでしょう。 最近のLinuxディストリ

    2023-06-13 10:04:55
  • [解決済み] ポインタにメモリが割り当てられているかどうかのチェック

    質問 C言語で、関数に渡されたポインタがメモリで確保されているかどうかを確認することは可能ですか? C言語で、文字ポインタを受け取る独自の関数を書きました。 buf [バッファへのポインタ]とサイズ buf_siz [バッファサイズ]。実際には、この関数を呼び出す前に、バッファを作成し、それに buf_siz のメモリを割り当てる必要があります。 ユーザーがメモリ割り当

    2023-06-13 03:47:09
  • [解決済み] 構造体は何が特別なのか?

    質問 C言語では関数から配列を返すことはできませんが、配列へのポインタを返すことができることは知っています。しかし、私は何を知りたいのです structs が配列を含んでいても関数から返せるようにする特別なことは何なのかを知りたいのです。 なぜ struct のラップが次のプログラムを有効にしているのでしょうか? #include <stdio.h> struct

    2023-06-12 23:09:41
  • [解決済み] なぜgccのmallocは値を0に初期化するのですか?

    質問 プラットフォームによって違うかもしれませんが gccでコンパイルして以下のコードを実行すると、私のubuntu 11.10では毎回0が表示されます。 #include <stdio.h> #include <stdlib.h> int main() { double *a = malloc(sizeof(double)*100) prin

    2023-06-11 22:07:20
  • [解決済み] C言語で文字列とintを連結する方法は?

    質問 ループの各反復の中で、ループのインデックスを含む文字列を形成する必要があります。 i : for(i=0;i<100;i++) { // Shown in java-like code which I need working in c! String prefix = "pre_"; String suffix = "_suff"; // This is

    2023-06-11 03:05:27
  • [解決済み] mallocはいつ、なぜ使うのか?

    質問 を使用してメモリを確保する必要があるのか、その理由がわかりません。 malloc . 以下は私のコードです。 #include <stdlib.h> int main(int argc, const char *argv[]) { typedef struct { char *name; char *sex; int age; }

    2023-06-10 22:28:56
  • [解決済み] 文字列を文字の配列に代入する

    質問 次のことに少し驚いています。 例1: char s[100] = "abcd"; // declare and initialize - WORKS 例2: char s[100]; // declare s = "hello"; // initalize - DOESN'T WORK ('lvalue required' error) なぜ2番目のアプローチがうま

    2023-06-10 21:26:10
  • [解決済み] スタンフォード大学のチュートリアルとGCCとの衝突

    質問 によると この の動画(38分あたり)によると、同じローカルバーを持つ2つの関数がある場合、それらは同じスペースを使用するそうです。ということは、次のようなプログラムは 5 . でコンパイルすると gcc 結果 -1218960859 .なぜ? プログラムです。 #include <stdio.h> void A() { int a;

    2023-06-09 11:52:21
  • [解決済み] C言語で整数の桁数を求めるには?

    質問 例えば n = 3432, result 4 n = 45, result 2 n = 33215, result 5 n = -357, result 3 文字列に変換して、その文字列の長さを取得することができると思いますが、それは複雑でハッキングのように思えます。 どのように解決するのですか? floor (log10 (abs (x))) + 1 ht

    2023-06-08 13:22:30
  • [解決済み] POSIXスレッドとシグナル

    質問 POSIXスレッドとPOSIXシグナルがどのように相互作用するかについて、複雑な点を理解しようとしています。特に、私は以下のことに興味があります。 シグナルがどのスレッドに配信されるかを制御する最善の方法は何ですか (それが最初の場所で致命的でないと仮定して)。 シグナルが到着したことを別のスレッド (実際には忙しいかもしれません) に伝える最良の方法は何でしょうか? (私は

    2023-06-08 06:56:22
  • [解決済み] C言語で32ビット整数を宣言する方法

    質問 どのようなプラットフォームでも常に4バイトの整数型を宣言するにはどうしたらよいでしょうか?特定のデバイスや16bitの古いマシンは気にしません。 int . どのように解決するのですか? #include <stdint.h> int32_t my_32bit_int;

    2023-06-06 21:18:41
  • [解決済み] なぜ(そしていつ)sizeofの後に括弧を使用する必要があるのですか?

    質問 以下はコンパイルに失敗します。 typedef int arr[10]; int main(void) { return sizeof arr; } sizeof.c:3: error: expected expression before ‘arr’ となっていますが、これを sizeof(arr); はすべてうまくいっています。なぜですか? どのように

    2023-06-06 03:46:58
  • [解決済み] memcpy(0,0,0)を実行しても安全であることが保証されているか?

    質問 C言語規格にあまり詳しくないので、ご容赦ください。 規格上、保証されているのかどうか知りたいです。 memcpy(0,0,0) が安全であることが規格で保証されているのか知りたい。 メモリ領域が重なると挙動が不定になるという制約しか見つけられませんでしたが...。 しかし、ここでメモリ領域が重なっていると考えていいのでしょうか? どのように解決するのですか? 私は

    2023-06-06 01:51:05
  • [解決済み] volatile int * p "のような揮発性ポインタはなぜ有用なのですか?

    質問 volatile は、参照を最適化しないようにコンパイラに指示することで、すべての読み取り/書き込みがレジスタに格納された値を使用せず、実際のメモリアクセスを行うようにします。私はこれが普通の変数に有用であることは理解できますが、どのように volatile がポインタにどのように影響するのか理解できません。 volatile int *p = some_addr; int a

    2023-06-05 23:28:44
  • [解決済み] strncpyがNULL終了しないのはなぜですか?

    質問 strncpy() は、バッファオーバーフローから保護すると考えられています。しかし、もしそれが null 終端せずにオーバーフローを防ぐのであれば、すべての可能性において、その後の文字列操作はオーバーフローすることになります。そのため、これを防止するために、私は自分自身がそうしていることに気づきました。 strncpy( dest, src, LEN ); dest[LEN -

    2023-06-04 21:18:49
  • [解決済み] C言語での最適なタイミング法?

    質問 コードセクションを高解像度かつ可搬性に優れた方法でタイムアウトさせるには、どのような方法がありますか? /* Time from here */ ProcessIntenseFunction(); /* to here. */ printf("Time taken %d seconds %d milliseconds", sec, msec); クロスプラットフォームのソリュ

    2023-06-03 18:05:18