alloca

    11

    3答えて

    私はC言語を改訂し、alloca/free関数について説明しました。これは、スペースのようなスタックにストレージを割り当てることで記述されています。これはmalloc/freeと同じですか?またはこれは何か違うのですか?ありがとう。

    5

    3答えて

    私は、次の機能を有する: double neville (double xx, size_t n, const double *x, const double *y, double *work); xとyに格納されているn点を用いてxxでラグランジュ補間を行います。 workアレイのサイズは2 * nです。これは多項式補間であるため、nは〜5の球場にあり、非常にまれに10を超えることはほとん

    7

    2答えて

    は、このテストプログラムを見る #include <stdio.h> #include <string.h> int main(int argc, char *argv[]) { if (argc < 2) goto end; char s[strlen(argv[1]) + 1]; strcpy(s, argv[1]); printf(

    3

    6答えて

    抽象データ型でスタック割り当てをラップする方法を探しています。たとえば、スタック上の割り当てによって厳密に動作するベクタを使用したいとします。私の最大のハードルはもちろん、allocaは現在のスタックフレーム内でしか機能しないので、これを関数に簡単にまとめることはできません。 私がこれを行うために見る唯一の方法は、特定のスタックフレームにコンパイルされることが保証されているマクロのような関数を使用

    3

    1答えて

    ほとんどのプラットフォームでは、allocaは、スタックポインタのインライン調整(たとえば、x64上のrspから、スタックアライメントを維持するための少しのロジックを足したもの)まで低下します。 私はgccがallocaのために生成するコードを見ていて、かなり変です。これは、次のアセンブリにコンパイル #include <alloca.h> #include <stddef.h> volat

    8

    2答えて

    私は、構造体の定義が隠れていると、構造体のメンバーに直接アクセスすることができないコンパイラの助けを借りて、コードを安全にすると思います。欠点は、構造体のサイズがわからないためにスタック上の構造体型の変数を宣言できないことです。一方、時にはmalloc()を使用しないことが望ましい場合もあります。この機能はPOSIXに準拠していませんが、これは(部分的に成功して)alloca(3)で解決できます。

    2

    1答えて

    私は自分のプロジェクトでalloca関数を使用していますが、CMakeを使用してそれが利用可能であることを確認しました。だから、私はCMakeLists.txtファイルにこのビットを追加しました: include(CheckSymbolExists) check_symbol_exists(alloca stdlib.h;cstdlib ALLOCA_EXISTS) if (NOT ALLOC

    0

    6答えて

    このコードは、スタックに割り当てられた変数への無効な参照を返しますか?それとも何:それは次のようになりf(alloca(size), alloca(size))などのallocaを実装/コンパイラのサポートによって処理された特殊なケース void *f(size_t sz) { return alloca(sz); } をかありますか?

    0

    1答えて

    私は、内部的に_alloca()関数(malloc.hで定義されている)を使用する共有オブジェクト(.so)を構築しています。この.soはスムーズにコンパイルされます。しかし、すぐに、私は、コンソール出力だから、 symbol lookup error: undefined symbol: _alloca whith()、私のアプリケーションがクラッシュし_allocaを使用する関数を呼び出す

    7

    2答えて

    私たちは[anyObject alloc]が実際にCの関数mallocとヒープに割り当てられたばかりのメモリを実装しているが、どこにも、このための答えを見つけることができませんでした。 また、検索中のObjective-C(中alloc呼び出すという印象の下にありましたallocのために、私は、スタック内のメモリを割り当てallocaを見つけました。私は間違っていないよ場合は、allocは、オブジ