jjzjj

c++ - 为什么 “strcat” 被认为是 “unsafe” ?

这个问题在这里已经有了答案:关闭11年前。PossibleDuplicate:WhydoesMSVC++consider“std::strcat”tobe“unsafe”?(C++)这是我的代码:charsentence[100]="";char*article[5]={"the","a","one","some","any"};lexeme=rand()%4;//randomlexemestrcat(sentence,article[lexeme]);strcat(sentence,"");在MSVC++中调试时,它会给我这些警告消息:Warning1warningC4996:'st

c# - 如何在 Unity 中使用不安全上下文

我想在c#中为使用CLR的Unity使用c++代码。Theprogramworksproperlyoutsideofunity,butinsideofengineitgivesmeanerror:"cs0227:unsafecoderequiresthe'unsafe'commandlineoptiontobespecified"我真的很困惑,因为该项目在visualstudio中成功构建(没有任何错误或警告)。我激活了“允许不安全”按钮。usingUnityEngine;usingSystem.Collections;usingSystem;usingSystem.Collectio

深入理解 go unsafe

学过C的朋友应该知道,有一种类型是指针类型,指针类型存储的是一个内存地址,通过这个内存地址可以找到它指向的变量。go虽然是一种高级语言,但是也还是给开发者提供了指针的类型unsafe.Pointer,我们可以通过它来直接读写变量的内存。正因为如此,如果我们操作不当,极有可能会导致程序崩溃。今天就来了解一下unsafe里所能提供的关于指针的一些功能,以及使用unsafe.Pointer的一些注意事项。内存里面的二进制数据表示什么?我们知道,计算机存储数据的时候是以二进制的方式存储的,当然,内存里面存储的数据也是二进制的。二进制的01本身其实并没有什么特殊的含义。它们的具体含义完全取决于我们怎么去

c++ - 是否可以根据作用域改变函数的行为?

我想创建类似于rust的东西unsafeC++中的作用域。我的想法是我有一些函数执行检查次数。例如:voidcheck(){if(...)throwexception(...);}voidfoo(){check();//dosomework}现在,我希望能够在不执行这些检查的情况下使用或(在不同的上下文中)调用函数foo()。理想情况下,它看起来像这样:foo();//callfooandperformchecksunsafe{foo();//callfoowithoutchecks}我的问题是,是否有可能在编译时实现这样的目标?是否可以通过check函数在它被调用的范围内以某种方式检

IDEA git报错 unsafe repository解决方法

闲来无事,更新Git,打开IDEA一看统统报错,百度半天大多都会给你说用gitconfig--global--addsafe.directory,git添加了新的目录安全限制,只需要打开你的用管理员身份运行cmd,跳转到项目目录输入gitconfig--global--addsafe.directoryC:\xxx\xxx\xxx 管理员身份运行cmd!管理员身份运行cmd!管理员身份运行cmd!如果不行尝试方法1:gitconfig--global--addsafe.directory"*"方法2:文件目录-右键-属性-安全-高级-所有者-更改为你的当前用户。方法3:找到安装目录下的git-

c# - 从 C# : should I pass StringBuilder or use unsafe code? 调用非托管函数

我有一个C#程序需要将char缓冲区传递给非托管函数。我发现了两种似乎工作可靠的方法,但我不确定应该选择哪一种。这是非托管函数的签名。extern"C"__declspec(dllexport)intgetNextResponse(char*buffer);第一个选项是将缓冲区定义为StringBuilder,如下所示。//atclasslevel...[DllImport("mydll.dll")]staticexternintgetNextResponse(StringBuilderbuffer);//inmainmethodbody...StringBuildersb=newSt

c# - 如果 C# 指针被认为是 "unsafe,",这是否意味着 C++ 指针也是 "unsafe"?

我正在用C#做一个项目,它可以从线性代数包中获益。我看过外面的那些,但我真的不想付钱,或者我发现它们不是很好。所以我决定自己写。我读到C++数组比C#数组快得多,但在C#中使用指针数组可以获得类似的性能,尽管它们被认为是“不安全的”。我很想知道C++指针有何不同,以及“不安全性”是否也适用于C++,或者它们是否是两个根本不同的东西。 最佳答案 C#(不安全)指针和C++(原始)指针都具有以下特征:它们允许您引用给定地址空间中的地址。它们允许您对它们执行简单的算术运算(加法和减法),涉及整数作为偏移量。它们允许您将它们指向的任何内容取

c++ - 错误 C4996 : 'ctime' : This function or variable may be unsafe

我有一个关于静态源代码分析的大型项目,除一件事外,一切都成功编译。我在标题中提供了错误消息。让我感到困惑的一点是它给出了一条错误消息,说不安全。我认为这应该只是警告,而不是错误。顺便说一句,我正在使用VisualStudio2012。这是我在ctime中遇到错误的代码部分。如果有人可以帮助我克服这个错误,我会很高兴。voidCppCheckExecutor::reportProgress(conststd::string&filename,constcharstage[],conststd::size_tvalue){(void)filename;if(!time1)return;//

iphone - 如何在 Structure 中使用 __unsafe_unretained

这个问题在这里已经有了答案:ARCforbidsObjective-Cobjectsinstructsorunionsdespitemarkingthefile-fno-objc-arc(4个答案)关闭9年前。我正在将我的项目转换为ARC我在我的项目中使用结构。转换为ARC时出现错误ARCforbidsObjective-Cobjectsinstructsorunionsrk-typedefinitionforstruct我在SO中搜索,发现使用__unsafe_unretained。它将解决问题。所以我在我的结构中使用了它。typedefstructGrade{__unsafe_un

c# - 当不是 4 字节对齐时,Monotouch 浮点指针抛出 NullReferenceException

我遇到了一个我无法理解的问题。在C#中使用Monotouch处理不安全指针时,我在设备(ARM)上遇到NullReferenceException,但我无法解释原因,让我们看一些代码varrand=newRandom();varbuffer=newbyte[2*1024*1024];rand.NextBytes(buffer);fixed(byte*ptr=buffer){varptr2=ptr+982515;//Thisworksvarbfr=newbyte[8];for(inti=0;i它只会在设备上崩溃。与ARM结构化对齐有什么关系?编辑经过一些研究,我得出这样的结论:只能从AR