草庐IT

unsafe-pointers

全部标签

pointers - 在 Go 中修改结构中的结构 slice

在下面的示例中,person有一段friendship,我尝试将一个friendship初始化为指向另一个的指针person对象,但由于某种原因它失败了,结果是没有人有任何friendship。我没有在我应该在的地方使用指针吗?packagemainimport("fmt""math/rand")typefriendshipstruct{friend*person}typepersonstruct{nameintfriendship[]friendship}funccreatePerson(idint)person{returnperson{id,make([]friendship,0

pointers - 如何使用指向该 slice 的指针获取 slice 项

有一个整数slice和一个接受指向slice的指针作为参数的函数。mainSlice:=[]int{0,8,5,4,6,9,7,1,2,3,6,4,5,7}doSmthWithSlice(mainSlice)有没有什么方法可以使用指向slice的指针来获取slice项,但无需将指针指向的值复制到新slice中?funcdoSmthWithSlice(slcPtr*[]int){*slcPtr[3]=777//thisdoesNOTworks,because*[]intdoesnotsupportindexing//Don'twanttoimplementit//likethisnewS

pointers - golang 类型断言,接口(interface){}(指针)和接口(interface){}(对象)有什么区别?

为什么我要为接口(interface)由指针赋值的类型断言结果赋值,而当我为由结构对象赋值的接口(interface)赋值时出现“无法赋值”错误?这是我的代码:packagemainimport("fmt")typePersoninterface{SayHi()}typeStudentstruct{idintnamestring}func(sStudent)SayHi(){fmt.Println("hi,iam",s.name,"myidis:",s.id)}funcmain(){p1:=Person(&Student{id:123,name:"William"})p1.SayHi()

pointers - 无法在 GO 中分配值

我试图理解为什么会出现错误:无效的内存地址或零指针取消引用假设我有这段代码(这不是真实的但类似):type(Catstruct{Namestring}Dogstruct{Namestring}Petsstruct{c*Catd*Dog})func(c*Cat)Rename(dDog)string{err:=SomeErrorChecks()name:=strings.TrimSpace(d.Name)c.Name=name//InthislineiswhereIgettheerrorreturnerr}func(p*Pets)SomeFunction()string{p.d=&Dog{

pointers - Golang : help understanding pointers, 分配和意外行为

所以我带着更多初学者的问题回来了,这些问题我似乎无法全神贯注。我正在试验以下代码。funcmain(){start:=time.Now()varpowers[]*big.Intfori:=1;i我的意图是按以下方式将Sub()的结果分配给diffdiff.Sub(powers[i+1],v)然而,这导致seqDiffs的值为1995(正确的最后一个值)一遍又一遍地重复。我知道这很可能是因为seqDiffs只是指向相同内存地址的指针列表,但我不明白的是为什么下面的工作正常v.Sub(powers[i+1],v)seqDiffs=append(seqDiffs,v)这导致seqDiffs成

Golang 常量 unsafe.Sizeof

不明白为什么我可以做constOK=uint64(0)constOK=int(unsafe.Sizeof(uint64(0)))但不是这个?constNOK=binary.Size(uint64(0)) 最佳答案 在specification中有解释.Packageunsafe是在编译器中实现的。表达式unsafe.Sizeof(uint64(0))canbeevaluatedatcompiletime.这是一个constantexpression.无法在编译时评估函数普通函数调用binary.Size(uint64(0))。它不是

pointers - 使用嵌套映射复制结构

这个问题在这里已经有了答案:Howtodeepcopyamapandthencleartheoriginal?(6个答案)关闭4年前。我想做什么?在需要时将“默认”结构复制到一个新结构中,并保留其所有值。详情我正在尝试复制一个Chat结构:typeChatDatastruct{Usermap[string]map[string]string`json:"user"`Chatmap[string]string`json:"chat"`}typeChatstruct{Settingsmap[string]map[string]interface{}`json:"settings"`Data

html - 相同域、协议(protocol)和端口上的 Chrome "Unsafe attempt to load URL"

在Chrome中,当我尝试访问下面错误中显示的xml链接时,我收到了这个错误。UnsafeattempttoloadURLhttp://build:8080/view/application/job/Project/Report/SourceMonitor.xsltfromframewithURLhttp://build:8080/view/application/job/Project/Report/SourceMonitor-details.xml.Domains,protocolsandportsmustmatch.据我所见,域、协议(protocol)和端口是相同的。这些文件都

javascript - Chrome 扩展 : Unsafe attempt to load URL 中的 XSLT

我正在编写一个Chrome扩展程序,它应该将XSLT转换动态应用于某些XML文档。仅出于测试目的,我使用了以下XML和XSL文件:XML:timeoutNameserver%2520not%2520registered.Finish11111002fc0f139b88a800151e5f21b9d747919XSL::如果链接在测试XML文件本身内部,则转换工作正常,即通过:扩展应该将相同的xsl链接注入(inject)XML文件。list.json:{"permissions":["tabs",""],"content_scripts":[{"matches":[""],"js":[

xml - 释放时 TXMLDocument 'Invalid pointer operation'

我正在使用TXMLDocument编写一个在网络服务器中使用的XML字符串。当服务器收到请求时创建组件,生成XML,将其传递回客户端,然后组件被释放。然而,当这个组件被释放时,我得到了Invalidpointeroperation。XML:=TXMLDocument.Create(nil);tryXML.Active:=True;nRoot:=XML.AddChild('topics');forX:=0toFCHM.Topics.Count-1dobeginnTopic:=nRoot.AddChild('topic');//Addmoredata...end;Response.Cont