c-strings

    2

    1答えて

    C++からRustで書かれたいくつかの関数を呼び出そうとしています。これまでのところ、私はかなり成功しましたが、ランタイム中にはまだCString関連のパニックで少し問題があります。 関数helloは、入力文字列を他の文字列と連結して返します。ここで は私のfun.rsです: use std::ffi::CString; #[no_mangle] pub extern "C" fn add(

    3

    3答えて

    私の古いコードと、Cの文字列のmalloc()を初期化する方法を見直しています。 私の現在のスタイルは、charのsize_tを取得し、それを複数の値で取得することです。たとえば、次のように私の古いコードは、私はちょうど私が代わりに私が char *string = malloc((size_t)PATH_MAX + 1); 私は以来を使用 char *string = malloc(size

    0

    1答えて

    私はNSArray<NSString*>*オブジェクトを持っており、文字列の配列をchar**として取り込むC APIを呼び出す必要があります。 これを行うにはどうすればよいですか?重要な注意点は、c-文字列がconst修飾子を持つことはできませんので、以下のようなものがUTF8String戻りconst char*ので、十分ではない:あなたが頼ることができないとしてあなたには、いくつかの動的メモ

    1

    2答えて

    自分でCを教えるために、私は基本的なストリング操作のためのいくつかの関数を書いています。私は可能な限り外部ライブラリを使用しないようにしています。 私はこの問題がこの機能にあると信じています。 'src'で 'find'を検索し、 'replace'で置き換えることになっています。ただし、 'find'が 'src'の末尾にある場合は機能しません。 char* str_find_r(const c

    -3

    3答えて

    、私は、名前(char *変数)、数(整数)、日付(別のchar*変数)を組み合わせてとして送信しなければならない二つのマクロ Edit: #define macro1(name , number , date){\ <---------body------> } #define macro2(key){\ <------body-----> } を有しますmacro1から呼

    0

    3答えて

    C++では、既に初期化された別の文字列(文字列クラス)から文字をインデックスワイズでコピーすることにより、新しい文字列(文字列クラス)を作成しました。 しかし、coutを使用してこの新しい文字列を画面に印刷できません。 c_str()を使用して、coutを使用して印刷できます。しかし、printf()を使用する場合にのみ、Cタイプ文字列が必要なので、c_str()は必要ありませんか? #inclu

    0

    1答えて

    私は心の中で、これは.cppファイルで使用する必要があります。 namespace { bool operator==(char const* const a, char const* const b) noexcept { return !::std::strcmp(a, b); } } はこの良いスタイルですか? EDIT: 私は同じことを達成

    1

    2答えて

    である私の複雑な状況: 私は可変長テンプレートとラムダ使用して機能を持っています、特定のイベントを観察する上で template<typename...Args> void foo(Args...args) { // the arguments are passed to the lambda _func = [args...](){ do_sth(args...); };

    -1

    3答えて

    次のコードで何が問題になっていますか? memsetはメモリのブロックへのポインタを使って処理することになっています。しかし、このコードは、セグメンテーションフォールト(コアダンプ) #include<iostream> #include <cstring> using namespace std; int main(int argc, char** argv) { char*

    -3

    1答えて

    この手順のデバッグの過程で、ターゲットの背後にある2次元がNULLを追加できないことがわかりました。 void list_dir(char **dirp_array) { char *dir_name = "./"; DIR *dp; struct dirent *dirp; if ((dp = opendir((const char *)dir_nam