标签: unsafe

检索UIImage(MonoTouch)的像素alpha值

这个问题是1042830的重复,但MonoTouch是特定的.有没有比分配IntPtr更安全的方法,使用CGBitmapContext绘制它然后在适当的偏移处读取字节?

unsafe pixel uikit uiimage xamarin.ios

2
推荐指数
1
解决办法
2614
查看次数

函数C++到C#(安全代码)

C++:

static void doIp(byte data[])
{
  unsigned char j, k;
  byte val;
  byte buf[8];
  byte *p;
  byte i = 8;

  for(i=0; i<8; i++)
  {
    val = data[i];
    p = &buf[3];
    j = 4;

    do
    {
      for(k=0; k<=4; k+=4)
      {
        p[k] >>= 1;
        if(val & 1) p[k] |= 0x80;
        val >>= 1;
      }
      p--;
    } while(--j);
  }

  memcpy(data, buf, 8);
}
Run Code Online (Sandbox Code Playgroud)

C#: ?

c# c++ arrays unsafe

2
推荐指数
1
解决办法
239
查看次数

用“new”初始化的 Fix(){} 中的多个指针不起作用

当我尝试使用固定初始化一个新的 char* 数组,同时与其他事物一起进行初始化时,它不起作用。下面的代码是一个例子

fixed (char* buffer = new char[25])
{
     //This works just fine
}; 

fixed (char* origionalPhrase = phrase, char* buffer = new char[25])
{
    //This does not
}
Run Code Online (Sandbox Code Playgroud)

语法解析器将新 char[25] 强调为“无法将类型 'char[]' 隐式转换为 'char*'”。我需要将这两个变量初始化为 char* 数组。第一个变量 origionalPhrase 变量初始化得很好。MSNDN 文档指出:

fixed (byte* ps = srcarray, pd = dstarray) {...}
Run Code Online (Sandbox Code Playgroud)

将工作。

我使用了这篇MSDN 文章。

.net c# unsafe fixed-statement

2
推荐指数
1
解决办法
4127
查看次数

C# 不安全的指针字段

这是要断了吗?它编译得很好,但根据读数,我不确定它是否保证 _ptRef 将始终指向构造函数中引用的结构。

我猜“中断”是指……GC 会移动指针 (_ptRef) 指向的结构吗?

public unsafe class CPointType0
{
    private PointType0* _ptRef = null;

    public CPointType0(ref PointType0 spt)
    {
        fixed (PointType0 * pt = &spt)
        {
            _ptRef = pt;
        }
    }

...a bunch of property accessors to fields of _ptRef (accessed as return _ptRef->Thing) }
Run Code Online (Sandbox Code Playgroud)

场景是

-PointType0 是一个结构体。

- 数据结构中内存中的数百万个 PointType0。这些曾经是引用类型,但是内存开销太大了。

-A List 只有当搜索操作找到相关的 PointType0 时才返回,并且这个 List 被传递并在很多上操作。

c# unsafe field

2
推荐指数
1
解决办法
733
查看次数

如何将字符串连接到int*?

我正在练习使用C#中的指针(通过不安全的代码).所以现在,我只想将""连接到一个int*,所以我可以将它用作参数Console.WriteLine().

    static void Main(string[] args)
    {
        fullOfPointers();
    }
    static unsafe void fullOfPointers()
    {
        int value = 10;
        int* adress = &value;
        Console.WriteLine(&value+"");//error
        Console.ReadLine();
    }
Run Code Online (Sandbox Code Playgroud)

但编译器说运算符'+'不能用于int*和string.所以我该怎么做?

c# pointers unsafe

2
推荐指数
1
解决办法
113
查看次数

在Azure网站中运行时如何使用unsafe进行编译

我有一个C# MVC托管的网站Azure Websites,我需要包括:

unsafe {
  fixed (float* f = myFloatArray) {

  }
}
Run Code Online (Sandbox Code Playgroud)

代码块.这在我的开发机器上很有效(在运行调试器时).我当然 - Allows unsafe code在我的项目设置中启用了复选框.

我的问题是,当我使用右键单击项目发布方法将项目发布到Azure网站时,构建告诉我需要编译/unsafe(这是我认为我通过检查Allow unsafe code项目设置中的复选框所做的事情) .

如何让我的unsafe代码发布到Azure Websites?我在这里做错了什么?

c# unsafe azure

2
推荐指数
1
解决办法
505
查看次数

sun.misc.Unsafe 线程安全吗?

sun.misc.UnsafetheUnsafe实例线程安全的?

java unsafe

2
推荐指数
1
解决办法
809
查看次数

在实现两个段错误的类型上从特征A转换为特征B.

几天前,有一个关于OOP的问题想要使用downcast来解决这个问题.作为一个自我挑战,我试图解决使用std::mem::transmute和不安全块的问题,这产生了分段错误.

这是Rust Playground完整代码.

代码的违规部分是这样的:

unsafe {
    let storage =
        mem::transmute::<&mut Box<AnyStorable + 'static>, &mut Box<Insertable<C>>>(x);
    println!("{:#?}", x);
    storage.insert(component); // This segfaults
};
Run Code Online (Sandbox Code Playgroud)

运行时会产生段错误:

/root/entrypoint.sh:line 7:5分段错误超时--signal = KILL $ {timeout}"$ @"

但是,当我更换此行时:

let storage =
    mem::transmute::<&mut Box<AnyStorable + 'static>, &mut Box<Insertable<C>>>(x);
Run Code Online (Sandbox Code Playgroud)

有:

let storage =
    mem::transmute::<&mut Box<AnyStorable + 'static>, &mut Box<VecStorage<C>>>(x);
Run Code Online (Sandbox Code Playgroud)

有用.为什么第一行失败而第二行没有?

unsafe segmentation-fault rust

2
推荐指数
1
解决办法
94
查看次数

在Rust中循环遍历整数的字节的惯用方法是什么?

我尝试了这样一段代码来遍历一个字节u64:

let mut message: u64 = 0x1234123412341234;
let msg = &message as *mut u8;

for b in 0..8 {
    // ...some work...
}
Run Code Online (Sandbox Code Playgroud)

不幸的是,Rust不允许这种类似C的索引.

arrays iteration byte unsafe rust

2
推荐指数
1
解决办法
179
查看次数

这段代码会导致定义的行为吗?

我正在尝试学习 Rust。我遇到了一个片段。我认为代码中的指针可能是无效引用,但它有效。

fn main() {
   let x={
       let mut y=[3];
       y.as_mut_ptr()
   };
   unsafe {println!("{}",*x);}
}
Run Code Online (Sandbox Code Playgroud)

memory unsafe rust

2
推荐指数
1
解决办法
86
查看次数