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

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

8
C mallocアサーションが失敗するのはなぜですか?
OpenCL実装に対してベンチマークできるように、分割統治多項式アルゴリズムを実装していますがmalloc、作業に取り掛かることができません。私がプログラムを実行すると、それはたくさんのものを割り当て、いくつかのものをチェックし、そしてsize/2アルゴリズムに送信します。それから私がmalloc再びラインを打つとき、それはこれを吐き出します: malloc.c:3096: sYSMALLOc: Assertion `(old_top == (((mbinptr) (((char *) &((av)->bins[((1) - 1) * 2])) - __builtin_offsetof (struct malloc_chunk, fd)))) && old_size == 0) || ((unsigned long) (old_size) >= (unsigned long)((((__builtin_offsetof (struct malloc_chunk, fd_nextsize))+((2 * (sizeof(size_t))) - 1)) & ~((2 * (sizeof(size_t))) - 1))) && ((old_top)->size & 0x1) && ((unsigned long)old_end …
86 c  gcc  malloc  assertion 

6
C-構造体内の関数
構造内に関数を作成しようとしていますが、これまでのところ、次のコードがあります。 typedef struct client_t client_t, *pno; struct client_t { pid_t pid; char password[TAM_MAX]; // -> 50 chars pno next; pno AddClient() { /* code */ } }; int main() { client_t client; //code .. client.AddClient(); } エラー:client.h:24:2:エラー:'{'トークンの前に ' :'、 '、'、 ';'、 '}'または '属性'が必要です。 それを行う正しい方法はどれですか?
86 c  function  struct 

3
CとC ++のほぼ同一のコード間の実行時間の大きな違い(x9)
私はwww.spoj.comからこの演習を解決しようとしていました:FCTRL-階乗 あなたは本当にそれを読む必要はありません、あなたが興味を持っているならそれを読んでください:) 最初に私はそれをC ++で実装しました(これが私の解決策です): #include <iostream> using namespace std; int main() { unsigned int num_of_inputs; unsigned int fact_num; unsigned int num_of_trailing_zeros; std::ios_base::sync_with_stdio(false); // turn off synchronization with the C library’s stdio buffers (from https://stackoverflow.com/a/22225421/5218277) cin >> num_of_inputs; while (num_of_inputs--) { cin >> fact_num; num_of_trailing_zeros = 0; for (unsigned int fives …
85 c++  c  performance  gcc  iostream 


4
翻訳ユニットの一部に対してのみGCC警告を選択的に無効にしますか?
このMSVCプリプロセッサコードに相当する最も近いGCCは何ですか? #pragma warning( push ) // Save the current warning state. #pragma warning( disable : 4723 ) // C4723: potential divide by 0 // Code which would generate warning 4723. #pragma warning( pop ) // Restore warnings to previous state. 一般的に含まれているヘッダーに、特定の警告を生成したくないコードがあります。ただし、これらのヘッダーを含むファイルは、引き続きその警告を生成する必要があります(プロジェクトでその警告が有効になっている場合)。

3
Cでの構造体メモリレイアウト
私はC#のバックグラウンドを持っています。私はCのような低水準言語の初心者です。 C#では、 structのメモリはデフォルトでコンパイラによってレイアウトされます。コンパイラは、データフィールドを並べ替えたり、フィールド間に追加のビットを暗黙的に埋めたりすることができます。そのため、正確なレイアウトのためにこの動作をオーバーライドするために、いくつかの特別な属性を指定する必要がありました。 AFAIK、Cはstruct、デフォルトでは、のメモリレイアウトを並べ替えたり整列したりしません。ただし、見つけるのが非常に難しい小さな例外があると聞きました。 Cのメモリレイアウト動作とは何ですか?何を再注文/調整する必要がありますか?

7
vimでCを使用してスペースを自動インデントしますか?
私はEclipseとJavaを使って少し甘やかされてきました。Linux環境でvimを使用してCコーディングを開始しましたが、vimにブロックの適切な間隔を自動的に実行させる方法はありますか? したがって、{を入力した後、次の行には2つのスペースがインデントされ、その行に戻ると同じインデントが維持され、}は2つのスペースに戻りますか?
85 c  vim  coding-style  vi 



3
Win32のunsignedintへのダブルキャストは2,147,483,648に切り捨てられます
次のコードをコンパイルします。 double getDouble() { double value = 2147483649.0; return value; } int main() { printf("INT_MAX: %u\n", INT_MAX); printf("UINT_MAX: %u\n", UINT_MAX); printf("Double value: %f\n", getDouble()); printf("Direct cast value: %u\n", (unsigned int) getDouble()); double d = getDouble(); printf("Indirect cast value: %u\n", (unsigned int) d); return 0; } 出力(MSVC x86): INT_MAX: 2147483647 UINT_MAX: …

4
dup2 / dup-ファイル記述子を複製する必要があるのはなぜですか?
私はの使用を理解しようとしているdup2とdup。 マニュアルページから: 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 be used interchangeably. They share locks, file position pointers and flags; for example, if the file position is modified by using lseek on …

8
文字列がCの別の文字列で始まるかどうかを確認するにはどうすればよいですか?
startsWith(str_a, str_b)標準Cライブラリのようなものはありますか? nullbytesで終わる2つの文字列へのポインタを取り、最初の文字列が2番目の文字列の先頭にも完全に表示されるかどうかを教えてください。 例: "abc", "abcdef" -> true "abcdef", "abc" -> false "abd", "abdcef" -> true "abc", "abc" -> true

3
sock send()コマンドで「リソースが一時的に利用できなくなりました」の原因
Resource temporarily unavailableソケットsend()コマンドでエラーを引き起こす原因は何ですか?ソケットはとして設定されAF_UNIX, SOCK_STREAMます。ほとんどの場合は機能しますが、このエラーが発生することがあります。ソケットの受信側は正常に機能しているようです。 これはあまり詳細ではないことは知っていますが、私は一般的なアイデアを探しています。ありがとう!
85 c  linux  sockets  unix 

5
snprintf()は常にnullで終了しますか?
snprintfは常にnullで宛先バッファを終了しますか? 言い換えれば、これで十分ですか? char dst[10]; snprintf(dst, sizeof (dst), "blah %s", somestr); または、somestrが十分に長い場合は、このようにする必要がありますか? char dst[10]; somestr[sizeof (dst) - 1] = '\0'; snprintf(dst, sizeof (dst) - 1, "blah %s", somestr); 私は、標準が何を言っているのか、そして標準的な振る舞いではないいくつかの人気のあるlibcが何をするのかということに興味があります。
85 c  posix  libc 


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