タグ付けされた質問 「c」

Cは、システムプログラミング(OSおよび組み込み)、ライブラリ、ゲーム、クロスプラットフォームに使用される汎用プログラミング言語です。このタグは、ISO 9899標準で定義されているC言語に関する一般的な質問で使用する必要があります(特に指定のない限り、最新バージョン9899:2018。バージョン固有のリクエストには、c89、c99、c11などのタグも付けます)。CはC ++とは異なり、合理的な理由がない限り、C ++タグと組み合わせるべきではありません。


17
mallocの後で解放しないと、本当に何が起こりますか?
これは、私を長年悩ませてきたものです。 私たちは皆、学校で教えられています(少なくとも、私はそうでした)、割り当てられているすべてのポインタを解放する必要があるということです。ただし、メモリを解放しない場合の実際のコストについては少し気になります。mallocループまたはスレッド実行の一部の中で呼び出された場合など、いくつかの明らかなケースでは、メモリリークがないように解放することが非常に重要です。ただし、次の2つの例を検討してください。 まず、次のようなコードがある場合: int main() { char *a = malloc(1024); /* Do some arbitrary stuff with 'a' (no alloc functions) */ return 0; } ここで実際の結果は何ですか?私の考えでは、プロセスが終了してヒープ領域がなくなるため、呼び出しを逃しても害はありませんfree(ただし、閉鎖、保守性、および適切な運用のためにそれをとることの重要性は認識しています)。私はこの考えで正しいですか? 次に、少しシェルのように動作するプログラムがあるとします。ユーザーはのような変数を宣言できaaa = 123、それらは後で使用できるようにいくつかの動的データ構造に格納されます。明らかに、いくつかの* alloc関数(ハッシュマップ、リンクリストなど)を呼び出すソリューションを使用することは明らかです。この種のプログラムではmalloc、これらの変数はプログラムの実行中に常に存在している必要があり、静的に割り当てられたスペースでこれを実装するための良い方法(私が見ることができない)がないため、呼び出し後に解放しても意味がありません。割り当てられているがプロセス終了の一部としてのみ解放されている大量のメモリがあるのは悪い設計ですか?もしそうなら、代替は何ですか?
538 c  malloc  free 


16
PythonからC / C ++を呼び出す?
CまたはC ++ライブラリへのPythonバインディングを構築する最も速い方法は何でしょうか? (これが問題になる場合は、Windowsを使用しています。)
521 c++  python  c 


13
char s []とchar * sの違いは何ですか?
Cでは、次のような宣言で文字列リテラルを使用できます。 char s[] = "hello"; またはこのように: char *s = "hello"; 違いは何ですか?コンパイル時と実行時の両方で、ストレージ期間に関して実際に何が起こるか知りたいです。
506 c  string  char  constants 

12
Cの「静的」関数とは何ですか?
問題は単純なものでした c 関数ではなく C ++ static コメントで明記されているメソッド。 static変数とは何か理解しましたが、static関数とは何ですか? そして、なぜ私が関数を宣言した場合、たとえばvoid print_matrix、a.c(WITHOUT a.h)に含めてインクルードするのでしょうか"a.c"-取得しますが"print_matrix@@....) already defined in a.obj"、そのように宣言したstatic void print_matrix場合、コンパイルされますか? 更新明確にするために- .c多くの人が指摘したように、インクルードは悪いことだと私は知っています。main.cこれらのすべての関数を適切なファイルにグループ化する方法がよくわかるまで、一時的にスペースを空けるためにそれを.h行い.cます。一時的で迅速な解決策です。

9
sizeof(x ++)がxを増分しないのはなぜですか?
以下は、dev c ++ウィンドウでコンパイルされたコードです。 #include <stdio.h> int main() { int x = 5; printf("%d and ", sizeof(x++)); // note 1 printf("%d\n", x); // note 2 return 0; } 私は期待してx実行した後、6であることを注記1を。ただし、出力は次のとおりです。 4 and 5 注1のx後、なぜ増加しないのか、誰か説明できますか?
505 c  sizeof 

30
Cでオブジェクト指向のコードをどのように記述しますか?[閉まっている]
休業。この質問には、より焦点を当てる必要があります。現在、回答を受け付けていません。 この質問を改善してみませんか?質問を更新して、この投稿を編集するだけで1つの問題に焦点を当てます。 3年前休業。 Cでオブジェクト指向コードを書く方法は何ですか?特に多型に関して。 このStack Overflowの質問Cのオブジェクト指向も参照してください。
500 c  oop  object 


8
符号なし整数とsize_t
最近のCおよびC ++コードは、C文字列関数のパラメーターからSTLまで、ほとんどどこでも/のsize_t代わりに使用しているようです。この理由とそれがもたらす利点について知りたいです。intunsigned int
492 c++  c  size-t 


11
.soファイルにシンボルをリストする方法
.soファイルからエクスポートされるシンボルを一覧表示するにはどうすればよいですか?可能であれば、それらのソースも知りたいです(たとえば、静的ライブラリから取得した場合)。 違いがある場合は、gcc 4.0.2を使用しています。
486 c++  c  gcc  symbols  name-mangling 



弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.